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 :

Procédure stockée - Curseur accédant à une table distante


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Points : 66
    Points
    66
    Par défaut Procédure stockée - Curseur accédant à une table distante
    J'ai une base Oracle dans laquelle j'ai deux users A et B.
    Je suis connecté à A.
    Je cherche à créer un procédure stockée dans laquelle j'ai un cursor CUR_Purge qui doit aller voir des tables du user B.
    J'ai le code suivant :
    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
    CREATE OR REPLACE PROCEDURE PROC_K_CLI_PURGE(Jour date)
    AS
      CURSOR CUR_Purge IS
    SELECT cd_client, '' ka_cli
    FROM (
           select cd_client from B.Table1
         )
    ;
    REC_CUR_PURGE CUR_PURGE%ROWTYPE;
    BEGIN
       OPEN CUR_PURGE;
       LOOP
          FETCH CUR_PURGE INTO REC_CUR_PURGE;
          EXIT WHEN CUR_PURGE%NOTFOUND;
          INSERT INTO k_cli_purge (CD_CLIENT, KA_CLI, A_SUPPRIMER) values (REC_CUR_PURGE.CD_CLIENT,REC_CUR_PURGE.KA_CLI,'1') ;
       END LOOP;
       CLOSE CUR_Purge;
    END;
    Mon problème est que ma procédure refuse de compiler (Warning: compiled but with compilation errors).
    Si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cd_client from B.Table1
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cd_client from A.Table1
    Je n'ai aucun problème.
    Si je me met simplement dans un SQL et que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cd_client from B.Table1
    cela fonctionne.

    Quelqu'une a-t-il une idée?
    Merci d'avance.

  2. #2
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    C'est une erreur qui m'a cassé la tête à plusieurs reprises :-) et pour t'éviter cela, il faut que tu te connectes sous le user B et tu fasses des grants select,... on les tables du user B to user A.

    LBO72.

Discussions similaires

  1. Procédure stockée qui renvoie une table
    Par rj450 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/12/2011, 16h24
  2. Procédure stockée qui renvoie une table
    Par rj450 dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/10/2011, 10h14
  3. Procédure stockée pour créer une table.
    Par Khaoula.85 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 13/03/2009, 21h15
  4. procédure stocké pour backuper une table
    Par zaki_1982 dans le forum Administration
    Réponses: 4
    Dernier message: 08/01/2009, 10h14
  5. Réponses: 2
    Dernier message: 22/10/2008, 14h14

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