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).
Obrigado é justatamente esta informação que estou precisando.
ReplyDelete