En todas
las publicaciones anteriores hemos ejecutado consultas con columnas, valores y
condiciones fijos, vamos a hacer nuestras consultas dinámicas, donde siempre se
ejecute la misma consulta con valores diferentes.
El uso de
las variables de sustitución está limitado SQL Plus o SQL Developer.
Veamos un ejemplo
de las variables de sustitución:
SELECT
*
FROM hr.employees
WHERE
employee_id=&id_del_empleado;
Al momento
de ejecutar la consulta, se despliega una ventana solicitando el valor que va a
ir en la variable de sustitución &id_del_empleado:
Para este caso se
buscó el empleado con id 204:
Se debe
tener en cuenta los tipos de datos, realmente lo que hace la variable de sustitución
es pedir un valor y ese valor es remplazado textualmente sin alguna modificación,
si consultamos un valor de tipo carácter o cadena de caracteres, de deben poner
las comillas simples en la ventana donde pide el valor, veamos un ejemplo donde
consultamos por el nombre del empleado:
SELECT
employee_id
,last_name
,hire_date
,job_id
FROM hr.employees
WHERE
last_name=&apellido_del_empleado;
Veríamos un error
por tipo de dato
Si el al ejecutar la consulta lo encerramos en
comillas simples, de estamos diciendo que es una cadena de caracteres y se
ejecuta sin algún error:
Así se pueden
manejar los caracteres, las cadenas de caracteres y fechas.
Las variables de sustitución
pueden ser usadas en las clausulas SELECT, WHERE y ORDER BY.
Veamos un
ejemplo:
SELECT
employee_id
,last_name
,hire_date
,&columna_a_mostrar
FROM hr.employees
WHERE
last_name=&apellido_del_empleado
ORDER BY &ordenado_por;
El resultado
seria:
Usando doble ampersand en variables de sustitución
Se usa doble
ampersand (&&) para definir las variables de sustitución que se están reusando:
SELECT
employee_id
,last_name
,hire_date
,&&columna
FROM hr.employees
WHERE
last_name='Whalen'
ORDER BY &&columna;
Observemos que la
variable de sustitución es solo una en las dos cláusulas que se usa, se muestra
solo una ventana pidiendo una sola vez el valor y la función del doble
ampersand es reusarese valor en los dos lados donde se usa, el resultado seria:
Recuerde que
usted puede definir sus variables a usar
Siguiente tema:
comandos DEFINE y VERIFY