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 :

Requêter sur les synonymes de tous les users, possible ?


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut Requêter sur les synonymes de tous les users, possible ?
    Bonjour, je suis novice avec Oracle et je ne maîtrise pas bien encore son environnement. Je cherche à créer une requête qui me retournerait le nom de tous les synonyms possédant un champ LIKE = "%clé%". En soit la requête n'est pas compliquée lorsque l'on ne veut que les synonyms de l'utilisateur courant, moi je voudrais qu'elle me retournent un résultat pour tous les utilisateurs ( owners ?).

    Voici ce que j'ai pour l'instant
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT synonym_name AS Synonyme, column_name, table_owner 
    FROM all_synonyms S
    JOIN all_tab_columns T ON S.synonym_name = T.table_name
    WHERE  T.column_name LIKE '%clé%';

    J'espère avoir été assez précis, je précise également que j'ai fais une recherche avant de poster mais n'étant pas familier avec l'environnement Oracle j'ai un peu de mal a m'y retrouver.

    EDIT: J'ai éssayé, a la place de all_synonyms de requêter sur la table dba_synonyms, seulement j'ai une erreur comme quoi cette table ou vue n'existe pas :/

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    C'est pas si mal, vous pêchez un peu sur la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select s.owner
         , s.synonym_name
         , s.table_owner 
         , s.table_name
         , t.column_name
      from all_synonyms    s
      join all_tab_columns t  on t.owner      = s.table_owner
                             and t.table_name = s.table_name
     where t.column_name like '%clé%';
    Vous pourriez encore l'écrire ainsi si le nom de la colonne ne vous intéresse pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select s.owner
         , s.synonym_name
         , s.table_owner 
         , s.table_name
      from all_synonyms s
     where exists (select null
                     from all_tab_columns t
                    where t.owner          = s.table_owner
                      and t.table_name     = s.table_name
                      and t.column_name like '%clé%');

  3. #3
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Merci beaucoup pour la réponse, effectivement cela répond bien à ma question, maintenant ce n'est pas exactement ce que je veux car je n'ai pas su bien m'exprimer je pense, je vais essayer de m'expliquer.

    Je crois que je confond USER, OWNER et SCHEMA, lorsque je me connecte via Toad, j'ai a ma disposition deux "comptes" pour m'y log. Je bosse donc avec deux écran Toad d'ouvert et je cherche à créer une requête me retournant le résultat pour ces deux "environnements" bien distincts. Manuellement il me suffit d’exécuter votre requête sur chaque écran, seulement lorsque je cherche une donnée et que je ne sais trop sur quelle table elle se trouve, ni dans quel "environnement", c'est là que ma requête entre en jeu : elle doit me retourner des tables présentent sur ces deux environnements au moins.

    J'ai conscience que je ne m'exprime surement pas correctement ou que ma demande est peut-être tout simplement impossible. Je vais déjà aller me rencarder un peu sur la notion de schema, car je ne maîtrise pas bien le concept.

    EDIT:
    "Un schéma est une collection (ou un ensemble) nommé d'objets tels que des tables, vues, clusters, procédure et packages associés à un utilisateur précis. Quand un utilisateur de base de données est crée, son schéma est automatiquement crée. Un utilisateur ne pourra alors être associé qu'à un seul schéma et réciproquement." - D'après cette définition, je ne peux pas, avec un même compte de connexion, requeter sur des tables, vues et synonyms appartenant au schema d'un autre compte de connexion ?

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Je pense qu'il y a un tuto ou des cours dessus, mais je vais plutôt faire une rapide réponse
    Un schéma est un Utilisateur
    Un Utilisateur crée un objet (table ou procédure) dans son schéma

    Un utilisateur peux accéder à un objet en mettant SCHEMA.OBJET (soumis aux droits d'exécution/select, etc..)
    Si SCHEMA. n'est pas renseigné (= OWNER), on va chercher l'objet de l'utilisateur

    Les Synonymes
    Tu peux créer un synonyme Privé (utilisable sur un schéma), ou Public (pour tout le monde)
    Le synonyme permet de pointer directement sur un objet (en gros c'est un alias vers SCHEMA.OBJET)


    Le catalogue (Les vues dba_all_columns, etc..) : Si tu as accès à ces vues, tu vois la description des objets.
    Il y a une différence de restrictions de données entre les vues user_ (que les objets de l'utilisateur), all_ (je crois que c'est : tous les objets auxquels il a droit), et dba_(tous les objets)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Merci beaucoup pour vos réponses, j'y vois bien plus claire maintenant !

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

Discussions similaires

  1. [Batch] Connexion SFTP + download de tous les fichiers ET tous les répertoires
    Par gazza dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 06/03/2014, 13h45
  2. lister tous les membres de tous les groupes AD
    Par fbb53 dans le forum VBScript
    Réponses: 1
    Dernier message: 03/10/2011, 11h24
  3. Réponses: 3
    Dernier message: 14/03/2007, 17h31
  4. Réponses: 9
    Dernier message: 16/10/2006, 16h35
  5. Réponses: 1
    Dernier message: 19/08/2006, 10h27

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