2007-02-12

Verificar a versão Oracle

Para saber qual a versão oracle utilizada pode-se utilizar a v$version:

select * from v$version where banner like 'Oracle%';

ou
usando as constantes do package DBMS_DB_VERSION, por exemplo:
begin
DBMS_OUTPUT.put_line(DBMS_DB_VERSION.version);
DBMS_OUTPUT.put_line(DBMS_DB_VERSION.release);
END;




Existem mais uma série de variáveis booleanas do tipo
dbms_db_version.ver_le_<version>
dbms_db_version.ver_le_<version>_<release>

Por exemplo:
dbms_db_version.ver_le_9_1 representa version <= 9 e release <= 1
dbms_db_version.ver_le_10_2 representa version <= 10 and release <= 2
dbms_db_version.ver_le_10 representa version <= 10

Estas variáveis são muito úteis para a compilação condicionada da Oracle 10g Release 2, mas disponivel também na Oracle 10g Release 1 (10.1.0.4.0).


$if dbms_db_version.ver_le_10 $then
<version 10 code>
$elsif dbms_db_version.ver_le_11 $then
<version 11 code>
$else
< version 12 and later code>
$end


Para quem ainda não conhece a compilação condiciona permite que o programa use diferentes particularidades consoante a versão do DB, etc..
O seu uso é efectuado mediante uma estrutura IF THEN ELSE do estilo:


$IF boolean_static_expression $THEN text
[ $ELSIF boolean_static_expression $THEN text ]
[ $ELSE text ]
$END


A verificação é feita em "compile time" pelo que funciona se o objecto estiver wrapped (em teoria ..ainda não testei).

1 comment:

  1. Obrigado é justatamente esta informação que estou precisando.

    ReplyDelete

Os comentários são moderados.
The comments are moderated.