Variables de Nivel sesión son implícitamente creadas cuando son
referenciadas con ampsersand doble en sentencias SQL. Persisten y permanecen
disponibles durante toda la sesión de usuario hasta que la sesión es terminada.
Una sesión termina cuando cerramos el cliente sql o cuando se cierra
anormalmente. El problema con la persistencia de las variables sesión es que
pueden provocar confusiones durante la ejecución de una sentencia sql. Afortunadamente
estas variables sesión pueden ser eliminadas con el comando UNDEFINE, la
sintaxis es:
UNDEFINE variable;
Ejemplo:
--
ESQUEMA HR
--
LOCATIONS COUNTRIES JOB_HISTORY REGIONS DEPARTMENTS EMPLOYEES JOBS
SELECT
location_id, street_address calle, state_province
"DELEGACION/MUNICIPIO", city ciudad, country_id pais
FROM locations
WHERE location_id = &&id;
DEFINE;
UNDEFINE
id;
El comando DEFINE sirve para dos propósitos. Puede ser utilizado para
recuperar todas las variables definidas en la sesión. Puede ser utilizado para
definir explícitamente un valor para una variable referenciada como una
variable de sustitución que puede ser utilizada por una o más sentencias
durante el tiempo de vida de la sesión.
DEFINE;
DEFINE variable=valor;
Ejemplo:
--
ESQUEMA HR
--
LOCATIONS COUNTRIES JOB_HISTORY REGIONS DEPARTMENTS EMPLOYEES JOBS
DEFINE
id = 1000;
SELECT
location_id, street_address calle, state_province
"DELEGACION/MUNICIPIO", city ciudad, country_id pais
FROM locations
WHERE location_id = &id;
DEFINE;
DEFINE
id = 1100;
SELECT
location_id, street_address calle, state_province
"DELEGACION/MUNICIPIO", city ciudad, country_id pais
FROM locations
WHERE location_id = &id;
DEFINE;
La capacidad del Cliente Sql para soportar la persistencia de
variables sesión puede activada o
desactiva mediante el comando SET. El comando SET no es un comando SQL. Es un
comando de control del entorno. Especificando SET DEFINE OFF, el cliente SQL no
guarda variables sesión. Esto permite que el símbolo amspersand sea utilizado
como un literal ordinario. El comando SET DEFINE ON | OFF determina si o no la sustitución
amspersand está disponible.
--
ESQUEMA HR
--
LOCATIONS COUNTRIES JOB_HISTORY REGIONS DEPARTMENTS EMPLOYEES JOBS
SET
DEFINE ON;
SELECT
'JHON & TERRY' FROM DUAL;
SET
DEFINE OFF;
SELECT
'JHON & TERRY' FROM DUAL;
SET
DEFINE ON;
Comentarios
Publicar un comentario