miércoles, 2 de julio de 2008

Obtener la versión de la base desde PL/SQL

Si queremos obtener cual es la versión de la base de datos para hacer una u otra cosa, podemos utilizar el paquete dbms_utility y el procedimiento db_version. El mismo nos retorna un string del tipo 9.2.0.4, el cual podemos consultar para programar a conveniencia.
  dbms_utility.db_version(v_version, v_compatible);
Una observación: cuidado con utilizar comandos que no existan en otras versiones, para eso está la compilación condicional introducida en Oracle 9i R2. Esta es una simple función que nos retorna la versión de la base actual que nos puede servir por ejemplo para reconstruir nombres de archivos que dependan de la versión utilizada.

El siguiente bloque PL/SQL es un ejemplo de como puede utilizarse db_version para condicionar la programación.

DECLARE
v_version varchar2 (32);
v_compatible varchar2 (32);
BEGIN
dbms_utility.db_version(v_version, v_compatible);

if substr(v_version,1,2) = '10' then
...
elsif substr(v_version,1,1) = '9' then
...
elsif substr(v_version,1,3) = '8.1' then
...
elsif substr(v_version,1,3) = '8.0' then
...
elsif substr(v_version,1,1) = '7' then
...
end if;

...

END;
Ver también:
Compilación condicional en 9i

No hay comentarios: