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
Me queda claro, pero como limpio la variable de sustitución, para que esta no quede cargada con el valor anterior al ser ejecutado nuevamente la consulta?. Esto me sucede al usar el doble &&, ya que el mismo dato lo uso en más de una consulta. Agradeciendo la información. Atte. Alex Rivera Herrera.
ResponderEliminar