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

PL/SQL Oracle Discussion :

Accès autres schémas dans procédure stockée


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2017
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2017
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Accès autres schémas dans procédure stockée
    Bonjour,
    Je souhaiterais accéder à la table table1 d'un schéma schéma1 depuis une procédure stockée dans schéma2, sans succès pour l'instant.
    Voici le code que de la procédure stockée dans schéma2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create or replace procedure testt
    is
    nb Integer;
    BEGIN
    execute immediate 'alter session set current_schema=schema1';
    SELECT COUNT(*) into nb FROM table1;
    END testt;
    Sa réponse est "table or view does not exist"....
    Merci de votre aide !

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Il faut donner un GRANT SELECT sur la table1 à l'utilisateur schema2.
    Ce GRANT ne doit pas être donné via un role, mais en direct.

    Et je ne pense pas qu'il soit utile de changer de schema courant, préfixer avec le nom du schéma propriétaire me semble suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) into nb FROM schema1.table1;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2017
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2017
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Merci Skuatamad,

    j'ai essayé d'insérer le grant dans la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create or replace procedure testt
    is
    nb Integer;
    BEGIN
    grant select table PAXMATCHCRL.paxrecord to airvision;
    SELECT COUNT(*) into nb FROM PAXMATCHCRL.paxrecord;
    END testt;
    mais là il ne l'accepte pas, et si j'essaie de l'exécuter en query il me dit" missing or invalid privilege", est-ce qu'il se pourrait que l'administrateur ait empêché cette possibilité ?
    Merci de ton aide

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    Bonjour,

    Concernant le GRANT : il ne doit pas être intégré à la procédure, il doit être exécuté préalablement à la création de la procédure. Et si ça ne marche pas... Il faut effectivement voir avec le DBA.

    Concernant le 'ALTER SESSION SET CURRENT_SCHEMA' : oubliez-le. Quand on crée une procédure, on n'exécute pas le code dont elle est constituée, donc comment voulez-vous que la compilation interprète une instruction en se basant dessus ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2017
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2017
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Bonjour,
    oui c'est juste...
    Concernant le GRANT je l'ai exécuté et obtenu le message "missing or invalid privilege", j'imaine donc qu'il 'agit d'un problème de droits à voir avec l'administrateur ?
    Merci

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Points : 339
    Points
    339
    Par défaut
    Il y a une erreur dans l'ordre grant. Essayez : grant select on PAXMATCHCRL.paxrecord to airvision;

    Et si ça ne fonctionne pas, voyez effectivement avec un DBA

  7. #7
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2017
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2017
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Oui merci,
    je viens de me rendre compte de l'erreur dans le GRANT, maintenant ça tourne, merci de votre aide, bonne journée !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2009, 09h54
  2. Alter table dans procédure stockée
    Par mehitabelle dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/11/2005, 16h14
  3. Réponses: 7
    Dernier message: 16/09/2005, 10h14
  4. procédures stockées dans procédure stockée
    Par olivc dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/05/2005, 16h58
  5. SQL dans Procédure stockée
    Par julure dans le forum Oracle
    Réponses: 13
    Dernier message: 02/11/2004, 16h57

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