Bonjour,

J'aimerai executer un SQL sur les vues du dico sur des bases de données 7.3.4, 8.0.5, 8.1.7, 9i et 10g.

Mon problème est que les vues du dictionnaire peuvent avoir évoluées d'une version d'oracle à l'autre.
Par exemple un simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select to_char(startup_time,'dd/mm/yyyy hh24:mi') "Startup time", status "Status", to_char(sysdate,'dd/mm/yyyy hh24:mi') "sysdate" from v$instance;
n'est pas possible sur une base 7.

J'aimerai faire un test en fonction de la version d'oracle du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
BEGIN
  if VERSION in ('8','9','10') then
    Select to_char(startup_time,'dd/mm/yyyy hh24:mi') "Startup time", status "Status", to_char(sysdate,'dd/mm/yyyy hh24:mi') "sysdate" from v$instance;
  endif;
END;
Je peux récupérer la version dans v$version mais ce n'est pas simple car le champ banner contient plein d'info. Existe-t-il une façon plus simple ?

Merci par avance pour vos réponses.