En PL/SQL, y por lo general cualquier lenguaje, cada nueva versión llega con características interesantes, que merecen implementarse. En muchas ocasiones esto implica tener que eliminar código viejo y reemplazarlo por las funcionalidades nuevas. Pues bien, una de estas características, y que surgió con la versión 10g, es la de permitir personalizar una aplicación PL/SQL sin tener que remover código fuente, esto es permitir evaluar la versión con la que se esta trabajando y dependiendo de la versión, utilizar el código de programación más acorde, a esto se le conoce como condición de compilación.
-- Utilizamos la constante ver_le_10_2, expresión estática requisito
-- para ser evaluada en una cóndición de compilación.
-- Esta constante retorna verdadero si la versión es menor o igual
-- a 10 y el release menor o igual a 2
La condición de compilación en ORACLE se implementa cuando utilizamos una condición de compilación, podemos identificarla cuando al realizar la condición IF, anteponemos el símbolo "$", en este caso:
Veamos un ejemplo, el siguiente código
-- Utilizamos la constante ver_le_10_2, expresión estática requisito
-- para ser evaluada en una cóndición de compilación.
-- Esta constante retorna verdadero si la versión es menor o igual
-- a 10 y el release menor o igual a 2
$IF dbms_db_version.ver_le_10_2 $THEN
SELECT CASE p_tipoSECUENCIA
WHEN 'DATOS' THEN sec_datos.nextval
WHEN 'ADMIN' THEN sec_admin.nextval
END
INTO v_secuencia
FROM dual;
$ELSE
v_secuencia :=
CASE p_tipoSECUENCIA
WHEN 'DATOS' THEN sec_datos.nextval
WHEN 'ADMIN' THEN sec_admin.nextval
END;
$END
$IF dbms_db_version.ver_le_10_2 $THEN esto significa que si encuentra una versión anterior o igual a la 10.2 tendrá en cuenta el código correspondiente:
SELECT CASE p_tipoSECUENCIA
WHEN 'DATOS' THEN sec_datos.nextval
WHEN 'ADMIN' THEN sec_admin.nextval
END
INTO v_secuencia
FROM dual;
De lo contrario $ELSE
v_secuencia :=
CASE p_tipoSECUENCIA
WHEN 'DATOS' THEN sec_datos.nextval
WHEN 'ADMIN' THEN sec_admin.nextval
END;
Oracle en tiempo de compilación, tomará el código que se ajuste a la versión current de base de datos. Esto no solamente dará transportabilidad de código a diferentes versiones, sino que estimula a que nosotros como programadores estemos al tanto de las nuevas características y las implementemos de una manera sencilla.
__________________________________________________________________________________
"Cuando tita sintió sobre sus hombros la ardiente mirada de Pedro, comprendió perfectamente lo que debe sentir la masa de un buñuelo al entrar en contacto con el aceite hirviendo: Era tan real la sensación de calor que la invadía, que ante el temor de que como a un buñuelo le empezaran a brotar burbujas por todo el cuerpo, el vientre, el corazón, los senos, bajó la mirada y trató de huir."
Como agua para chocolate
No hay comentarios:
Publicar un comentario