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 :

Avoir les métadonnées du dictionnaires de données.


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Par défaut Avoir les métadonnées du dictionnaires de données.
    Bonjour!

    j'ai besoin de fournir les requêtes nécessaires pour "collecter les métadonnées du dictionnaires de données" d'une base de données.

    Cette base, c'est moi qui la crée. Via des create tables, des create views, des create users, create sequences, etc.

    Pour obtenir ces metadonnées, j'ai trouvé quelques requêtes sur le net, notamment:

    SELECT table_name FROM user_tables
    SELECT view_name FROM user_views
    SELECT DISTINCT name FROM user_source WHERE Type='PROCEDURE'
    select sequence_name from all_sequences;
    SELECT trigger_name FROM all_triggers WHERE owner = "nom_owner";

    J'ai deux questions par rapport à tout ça:
    _quel est le nom du "owner" qui figure sur la sélection des infos sur les triggers? Est-ce que login avec lequel je me suis loggué pour créer la base et son contenu?
    Me connectant avec le login "system", dois-je alors mettre "owner = "system" " ? Il n'y a pas quelque chose en rapport avec "dba"?

    _Je ne parviens pas à trouver la requête pour avoir les infos sur les utilisateurs. Je suppose que ça devrait ressembler à SELECT user_name from ******* mais je ne trouve pas sur google pour le moment.

    Oh, et une troisième. Je suppose que je dois préciser le "WHERE owner = "nom_owner" " sur chacun des requêtes que j'ai donné précédement?

    Merci infiniment!

    D.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par divad Voir le message
    quel est le nom du "owner" qui figure sur la sélection des infos sur les triggers? Est-ce que login avec lequel je me suis loggué pour créer la base et son contenu?
    C'est le nom du schéma où ont été créés les objets, soit le "nom du login".
    Si c'est system, ce n'est pas une bonne idée d'aller jouer sur le terrain des objets système d'oracle... Attention au drop table cascade malheureux !

    Citation Envoyé par divad Voir le message
    Je ne parviens pas à trouver la requête pour avoir les infos sur les utilisateurs. Je suppose que ça devrait ressembler à SELECT user_name from ******* mais je ne trouve pas sur google pour le moment.
    ALL_USERS au DBA_USERS.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Par défaut
    Merci pour la réponse!
    Oui, system n'est pas malin. pour le moment, ce sont juste des tests.

    Comment choisir entre:
    SELECT user_name from ALL_USERS
    et
    SELECT user_name from DBA_USERS
    ?
    Ou est-ce que ça va me renvoyer la même chose?

    et une dernière question:
    Je suppose que je dois préciser le "WHERE owner = system " sur chacune des requêtes que j'ai donné précédemment?

    Merci encore pour tes réponses et ta rapidité!

    D.

  4. #4
    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
    DBMS_METADATA est ton ami

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Par défaut
    Merci beaucoup pour ce lien.
    Mais le plus sincèrement du monde, je ne vois pas comment ça peut m'aider pour les questions précises que j'ai posées? Peux-tu m'éclairer?

    Merci encore

  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
    regarde les exemples!

    Example: Fetch the DDL for all Complete Tables in the Current Schema, Filter Out Nested Tables and Overflow Segments

    This example fetches the DDL for all "complete" tables in the current schema, filtering out nested tables and overflow segments. The example uses SET_TRANSFORM_PARAM (with the handle value = DBMS_METADATA.SESSION_TRANSFORM meaning "for the current session") to specify that storage clauses are not to be returned in the SQL DDL. Afterwards, the example resets the session-level parameters to their defaults.

    To generate complete, uninterrupted output, set the PAGESIZE to 0 and set LONG to some large number, as shown, before executing your query.

    SET LONG 2000000
    SET PAGESIZE 0
    EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
    SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
    FROM USER_ALL_TABLES u
    WHERE u.nested='NO'
    AND (u.iot_type is null or u.iot_type='IOT');
    EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'DEFAULT');
    Example: Fetch the DDL For All Object Grants On HR.EMPLOYEES

    SELECT DBMS_METADATA.GET_DEPENDENT_DDL('OBJECT_GRANT',
    'EMPLOYEES','HR') FROM DUAL;
    Example: Fetch the DDL For All System Grants Granted To SCOTT

    SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','SCOTT')
    FROM DUAL;

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

Discussions similaires

  1. Avoir les données contenant un 'mot' grace au clientdataset
    Par nassoft dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/03/2007, 13h33
  2. [BDE] [D2005] Comment avoir les outils base de donnée
    Par melles dans le forum Bases de données
    Réponses: 7
    Dernier message: 18/09/2006, 11h57

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