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

SQL Oracle Discussion :

IF VERSION = ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut IF VERSION = ?
    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.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est aussi dans v$instance

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> desc v$instance
     Name                            Null?    Type
     ------------------------------- -------- ----
     KEY                                      VARCHAR2(64)
     VALUE                                    NUMBER
     
    SQL> Select banner from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle7 Workgroup Server Release 7.3.4.2.0 - Production
    PL/SQL Release 2.3.4.4.0 - Production
    CORE Version 3.5.4.0.0 - Production
    TNS for 32-bit Windows: Version 2.3.4.0.0 - Production
    NLSRTL Version 3.2.4.0.1 - Production
    Pas sous la même forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> select value from v$instance where key='STARTUP TIME - JULIAN';
     
         VALUE
    ----------
       2454340

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Pourquoi ne pas faire le test sur les 7 premiers caractères de v$version ?
    en v7 -> Oracle7
    en v8 -> Oracle8
    en v9 -> Oracle9
    en v10 -> Oracle10 (là je suis pas sure )
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    tu es en sqlplus?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    col _startup_time new_v startup_time nopri
    set ver off
    alter session set nls_date_format='dd/mm/yyyy hh24:mi';
     
    select 'startup_time,' "_startup_time"
    from v$version
    where substr(banner, instr(banner,'Release')+8,
      instr(banner,'.')-(instr(banner,'Release')+8)) in ('8','9','10')
    and banner like 'Oracle%';
     
    select &startup_time status,sysdate from v$instance;
    test en 10g

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SQL> col _startup_time new_v startup_time nopri
    SQL> set ver off
    SQL> alter session set nls_date_format='dd/mm/yyyy hh24:mi';
     
    Session altered.
     
    SQL> select
      2  'startup_time,' "_startup_time"
      3  from v$version
      4  where
      5  substr(banner, instr(banner,'Release')+8,
      6    instr(banner,'.')-(instr(banner,'Release')+8)) in ('8','9','10')
      7  and banner like 'Oracle%';
     
     
     
     
    SQL> 
    SQL> select &startup_time status,sysdate
      2  from v$instance;
     
    STARTUP_TIME     STATUS       SYSDATE
    ---------------- ------------ ----------------
    19/07/2007 13:50 OPEN         28/08/2007 09:48

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    bon, je n'avais pas Oracle7 pour tester. mais j'espère que ça t'a donné une piste

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas plus simple de vérifier la présence de la colonne VERSION dans v$instance ?

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    oui, le problème c'est que version n'est apparue qu'en 8.0.5 dans la vue v$instance...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    donc, si version n'existe pas il est en V7

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

Discussions similaires

  1. [Kylix] [Kylix 3] Installation version Open
    Par muadib dans le forum EDI
    Réponses: 1
    Dernier message: 14/03/2003, 16h37
  2. [SYBASE] Versions de Sybase
    Par ora9i dans le forum Sybase
    Réponses: 5
    Dernier message: 25/10/2002, 12h22
  3. [Kylix] cours & version utilisable de Kylix
    Par Suricate dans le forum EDI
    Réponses: 1
    Dernier message: 19/09/2002, 18h22
  4. Version étudiant de Delphi 6
    Par Smortex dans le forum EDI
    Réponses: 2
    Dernier message: 20/07/2002, 11h13

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