Ir al contenido principal

Sustitución Amspersand Simple ok


Es la forma más popular y simple de sustitución de elementos en una sentencia SQL. El carácter amspersand (&) es el elegido para designar una variable de sustitución en una sentencia y procede el nombre de la variable sin espacios entre ellos. Cuando se ejecuta la sentencia, el Servidor Oracle procesa la sentencia, verifica si hay variables de sustitución, e intenta resolver las variables en dos formas. La primera verifica  si la variable está definida en la sesión del usuario. Si la variable no está definida, el proceso usuario solicita el valor para esta. Una vez que un valor es enviado la sentencia completa su ejecución. La sustitución amspersand es ejecutada en tiempo de ejecución y es conocida como runtime binding o runtime substitution.

-- ESQUEMA HR
-- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS
SELECT region_id, region_name FROM regions WHERE region_id = &region_id;
SELECT &col1, &col2 FROM regions WHERE region_id = &region_id;
SELECT employee_id, first_name, last_name, phone_number FROM employees
WHERE  employee_id = &employee_id OR first_name = &first_name;

Podemos sustituir las clausulas mediante la sustitución amspersan.
SELECT &columnas FROM &tabla WHERE &condicion ORDER BY &orden;

A las variables se les puede asignar un nombre alfanumérico que es un nombre de identificador válido. Los valores ingresados para las sustituciones de valores debe ir acorde al tipo de dato que este manejando sino el servidor Oracle enviará un error. Cuando ingresamos valores carácter o fecha para las variables de sustitución es necesario ingresar las comillas simples que encierren el texto ingresado, para evitar esto podemos utilizar las comillas simples encerrando entre comillas las variables de sustitución, con esta forma no necesitará ingresar las comillas simples.

-- ESQUEMA HR
-- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS

Solo recordar que cuando sustituimos variables en el contexto con columnas carácter o fecha no olvidemos colocar comillas simples o incluir las comillas en la sentencia encerrando la variable de sustitución entre comillas simples.

-- ESQUEMA HR
-- REGIONS LOCATIONS DEPARTMENTS COUNTRIES JOB_HISTORY EMPLOYEES JOBS
SELECT * FROM departments WHERE department_name LIKE &department_name;
SELECT * FROM departments WHERE department_name LIKE '%&department_name%';
SELECT &REGION_ID, &REGION_NAME FROM regions;
SELECT &COLUMNS FROM regions;
SELECT region_id, region_name FROM &tabla ORDER BY &col_orden DESC;
SELECT region_id, region_name FROM &tabla ORDER BY &col_orden;

Comentarios