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 :

Metadata d'une requête (et non d'une table)


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de zeyr2mejetrem
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 471
    Par défaut Metadata d'une requête (et non d'une table)
    Bonjour à tous,

    Etant une tanche en Oracle SQL, je soumets mon problème à cette auguste assemblée.

    Je voudrais monter une routine qui prend en entrée une requête simple mais qui m'est inconnue auparavant.
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT proprietaire.nom, animal.lof, animal.sexe 
    FROM proprietaire, animal 
    WHERE animal.proprietaire_id = proprietaire_id;
    Je voudrais récupérer une liste de métadonnées du type de celle que DESC fournit
    C'est à dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    proprietaire.nom      VARCHAR2(50)
    animal.lof     NUMBER(1)
    animal.sexe     VARCHAR2(1)
    Comment puis je faire simplement avec Oracle SQL ?
    Cela est il possible ?

    J'étais parti sur la piste de monter une vue temporaire à partir de ma requête puis de faire un DESC VIEW mais j'ai des problème de droits ...

    Ca serait tellement bien si on pouvait faire un DESC (SELECT * ... FROM etc...)

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Une solution très moche

    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
    SQL> create view tvdesc as
      2   select table_name, t.owner, trunc(bytes/1024/1024, 2) Mo
      3   from dba_segments s, dba_tables t
      4   where t.owner=s.owner
      5   and t.table_name=s.segment_name
      6  /
     
    View created.
     
    SQL> desc tvdesc ;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     TABLE_NAME                                NOT NULL VARCHAR2(30)
     OWNER                                     NOT NULL VARCHAR2(30)
     MO                                                 NUMBER
     
    SQL> drop view tvdesc ;
     
    View dropped.

  3. #3
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut dbms_sql.describe
    Bonjour,
    c'est possible avec dbms_sql.describe:
    http://docs.oracle.com/cd/E11882_01/...htm#ARPLS68205
    Cordialement,
    Franck.

  4. #4
    Membre éclairé Avatar de zeyr2mejetrem
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 471
    Par défaut
    Merci à vous pour vos réponses rapides.
    Notamment à pachot qui m'a permis de découvrir un bel outil que je ne connaissais pas

    Ca marche avec les deux méthodes mais je pense que celle de pachot est la plus élégante

    Je passe le sujet en résolu.

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

Discussions similaires

  1. [AC-2010] Select à partir d'une requête et non d'une table
    Par sardaucar dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/11/2013, 06h03
  2. Réponses: 9
    Dernier message: 19/12/2011, 17h11
  3. Réponses: 5
    Dernier message: 18/02/2009, 09h52
  4. Réponses: 1
    Dernier message: 13/02/2009, 10h13
  5. passer d'une requêtes SGL directe en une requête normale
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/02/2009, 08h26

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