Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/12/2012, 14h04   #1
Maglight
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 179
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 179
Points : 35
Points : 35
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 :
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 :
SELECT cd_client FROM B.Table1
par
Code :
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 :
SELECT cd_client FROM B.Table1
cela fonctionne.

Quelqu'une a-t-il une idée?
Merci d'avance.
Maglight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 12h04   #2
LBO72
Membre confirmé
 
Avatar de LBO72
 
Inscription : mai 2007
Messages : 405
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France

Informations forums :
Inscription : mai 2007
Messages : 405
Points : 296
Points : 296
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.
LBO72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h12.


 
 
 
 
Partenaires

Hébergement Web