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 :

Table des types dans le Dictionnaire - Affichage colonnes et types à partir d'une requête


Sujet :

Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Table des types dans le Dictionnaire - Affichage colonnes et types à partir d'une requête
    Bonjour !

    Je suis actuellement en train d'écrire une procédure PL/SQL analysant une requête SQL donnéee (ici en dur pour l'exemple).
    Celle-ci devrat afficher le nom et le type des colonnes "citées" dans la requête (voir ci-dessous).

    Résultat de l'affichage
    -------------------------------------
    col_type = 2
    col_name = maColonne1
    -------------------------------------
    col_type = 1
    col_name = maColonne2
    Ma question est la suivante; le type des colonnes (col_type) est donnés sous format numérique soit :
    "1" pour "NUMBER",
    "2" pour "VARCHAR2",
    etc.

    Ce qui suppose que quelque part dans le dictionnaire, une table définit ces liaisons. Malheureusement j'ai beau eu chercher sur internet et parcourirs le dictionnaire, je n'ai pas réussi à trouver..
    Est-ce que quelqu'un la connaitrait ?


    Voici le code utilisé pour arriver au résultat ci-dessus avec la fonction "DBMS_SQL.describe_columns", ....
    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
     
    curseur number;  
    nbr_col integer;  
    les_colonnes dbms_sql.desc_tab;  
     
    procedure decrit_la_colonne(rec IN dbms_sql.desc_rec) IS
    begin
        dbms_output.put_line('-----------------------------------------------');
        dbms_output.put_line('col_type          =    ' || rec.col_type);
        dbms_output.put_line('col_name          =    ' || rec.col_name);
      end;
     
    begin
      curseur := dbms_sql.open_cursor;
      dbms_sql.parse(curseur, 'SELECT maColonne1, maColonne2, maColonne3 etc FROM maTable', dbms_sql.native);
       dbms_sql.describe_columns(curseur, nbr_col, les_colonnes);
     
      --   Description des colonnes de la reqête
      FOR j IN 1..nbr_col Loop
          decrit_la_colonne(les_colonnes(j));
      End Loop;
     
      dbms_sql.close_cursor(curseur);

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Je pense que c'est pas ecrit dans une table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SYS@MINILHC AS SYSDBA>set long 400
    SYS@MINILHC AS SYSDBA>SELECT text from dba_views WHERE view_name='DBA_TAB_COLS';
     
    TEXT
    --------------------------------------------------------------------------------
    select u.name, o.name,
           c.name,
           decode(c.type#, 1, decode(c.charsetform, 2, 'NVARCHAR2', 'VARCHAR2'),
                           2, decode(c.scale, null,
                                     decode(c.precision#, null, 'NUMBER', 'FLOAT'),
                                     'NUMBER'),
                           8, 'LONG',
                           9, decode(c.charsetform, 2, 'NCHAR VARYING', 'VARCHAR'),
    (En plus comme ca, vous avez une methode de recherche )

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Rebonjour,

    Merci pour votre rapidité de réponse !
    Effectivement, la fonction "decode" semble être une très bonne altérnative !
    Je vais m'y atteler !

    Encore merci et bonne journée.

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

Discussions similaires

  1. Table des matières, dans la table des matières
    Par val17lr dans le forum Mise en forme
    Réponses: 1
    Dernier message: 13/07/2010, 13h38
  2. [QST] insérer table des figures dans tables des matieres
    Par hannibal.76 dans le forum Débuter
    Réponses: 11
    Dernier message: 04/06/2010, 12h14
  3. Table des matières dans le viewer de pdf
    Par Gwindor dans le forum Mise en forme
    Réponses: 2
    Dernier message: 07/08/2009, 11h01
  4. entête "TABLE DES MATIERES" dans l'introduction
    Par el.cascador dans le forum Mise en forme
    Réponses: 2
    Dernier message: 14/08/2008, 17h13
  5. Faire apparaître la table des matières dans la table des matières
    Par choupinetto dans le forum Mise en forme
    Réponses: 2
    Dernier message: 03/10/2007, 17h40

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