IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Comment déterminer la version d'Oracle en SQL ?


Sujet :

Oracle

  1. #1
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Comment déterminer la version d'Oracle en SQL ?
    Bonjour,

    Je développe une application sur une base de données Oracle, et j'ai des clienst en 8.0.6; 8i ou 9. Je mets à jour le schéma via des scripts PL, tout fonctionne bien.

    Suite à des erreurs de conception, un champ est à supprimer : ça n'est pas possible en Oracle 8 (en 8.0.6 au moins) : j'aimerais avoir la requête / fonction qui me permette de déterminer directement la version de la BDD sous SQL ?

    Suite à mes recherches, j'ai vu que la table V$VERSION contenait des choses intéressantes, mais mon n° de version est imbriquée dans une chaîne de caractères, et la requête me retourne plusieurs lignes ...

    J'ai vu que PostGre permettait un simple :
    Donc j'aimerais savoir si Oracle fait la même chose ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    En version 10, on peut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SQL> select version from v$instance;
     
    VERSION
    -----------------
    10.2.0.1.0

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    j'ai fait ceci mais je ne suis pas certain que ce soit optimal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select version from PRODUCT_COMPONENT_VERSION where product like 'Oracle%';
    Sinon, pour le fun :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select substr(banner,instr(banner,'Release ')+8,9) from v$version
    where banner like 'Oracle%'

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par pifor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select version from v$instance;
    Parfait, ça fonctionne sur 8.0.6, 8.1.7, etc ... Merci

    Citation Envoyé par Fred_D
    j'ai fait ceci mais je ne suis pas certain que ce soit optimal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select version from PRODUCT_COMPONENT_VERSION where product like 'Oracle%';
    Ca me renvoie exactement les mêmes résultats que la précédente requête, ça marche sur les 8, 9, Merci aussi
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798

  6. #6
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Au choix, en SQL, en PL/SQL ou en "hint" de SQL*Plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    select * from v$version where rownum=1;
     
    DECLARE
          l_ver    LONG;
          l_compat LONG;
    BEGIN
          dbms_utility.db_version(version => l_ver, compatibility => l_compat);
          dbms_output.put_line('Version:' || l_ver);
    END;
    /
     
    def _o_version

  7. #7
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par LeoAnderson
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$version where rownum=1;
    Heu, il y a des chances que cette requête ramène plus d'une ligne, ou c'est juste par habitude, la clause "rownum = 1" ?

    Bon, comme ça ne coûte pas beaucoup plus cher, et si ça permet d'éviter les mauvaises surprises au mauvais moment, je prends, finalement
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  8. #8
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Citation Envoyé par Xo
    Citation Envoyé par LeoAnderson
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$version where rownum=1;
    Heu, il y a des chances que cette requête ramène plus d'une ligne, ou c'est juste par habitude, la clause "rownum = 1" ?

    Bon, comme ça ne coûte pas beaucoup plus cher, et si ça permet d'éviter les mauvaises surprises au mauvais moment, je prends, finalement
    Fais donc le test sans le rownum... ;-)

    Et si tu n'as pas de base sous la main, il y a toujours la doc : http://download-east.oracle.com/docs...htm#sthref2030
    V$VERSION

    The dynamic performance table containing version numbers of core library components in the Oracle Server.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment voir la version du client oracle utilisé?
    Par farenheiit dans le forum Administration
    Réponses: 11
    Dernier message: 28/06/2007, 11h40
  2. Réponses: 2
    Dernier message: 16/05/2007, 19h26
  3. Réponses: 4
    Dernier message: 08/05/2007, 11h34
  4. Réponses: 4
    Dernier message: 30/04/2007, 17h29
  5. oracle 9.2.0.6 : comment connaitre la version précise
    Par Commandant dans le forum Oracle
    Réponses: 18
    Dernier message: 28/09/2006, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo