ORA-00942, sur un database link dans le trigger
J'ai un problème que je suis incapable de savoir la raison, ainsi que la solution. J'explique avec l'exemple que j'essaie de tout simplement lire une base à distance avec un trigger. Le problème est du faite qui me met : Table or View not exist. Voici tout les éléments en code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE OR REPLACE TRIGGER Aj_M_S1
INSTEAD OF INSERT
ON V_V1_MEMBRE
FOR EACH ROW
declare
conti varchar2(32);
conti2 varchar2(32);
Begin
select continent into conti from PAYS where :New.Nompays = NomPays;
select continent into conti2 from PAYS@testsg107662 where :New.Nompays = NomPays;
End;
/
show errors; |
Errors for TRIGGER AJ_M_S1:
LINE/COL ERROR
-------- -----------------------------------------------------------------
6/1 PL/SQL: SQL Statement ignored
6/35 PL/SQL: ORA-00942: table or view does not exist
Si j'enlève la ligne contenant le database link PAYS@testsg107662, le trigger marche parfaitement. Toujours dans le même ordinateur, je fais les descriptions des tables pour vérifier mes datalinks.
Code:
1 2 3 4 5 6 7 8 9 10 11
| SQL> desc pays;
Name Null? Type
----------------------------------------- -------- ----------------------------
NOMPAYS NOT NULL VARCHAR2(32)
CONTINENT VARCHAR2(32)
SQL> desc pays@testsg107662;
Name Null? Type
----------------------------------------- -------- ----------------------------
NOMPAYS NOT NULL VARCHAR2(32)
CONTINENT VARCHAR2(32) |
Encore mieux, j'arrive à créer une vue entre ces deux table sans aucun problème.
Code:
1 2 3 4
| create or replace view v_pays as
SELECT * FROM PAYs union select * from pays@testsg107662; 2
View created. |
Et aussi, si je tape : select * from pays@testsg107662; il n'a aucun problème, il y a juste un probleme de trigger et je ne vois pas la solution. Les deux tables ont les même valeurs au niveau base de donnée.
Quelqu'un aurait une solution? ca serait sympa... Merci d'avance....