bonjour, voila j'essai d'écrire une procédure avec du sql dynamique mais je tombe sur un probleme.

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
19
20
21
22
PROCEDURE Load_Error_Table (NOM_TABLE in varchar2, CONDITION in varchar2, NOM_INTERFACE in varchar2,LA_DATE in varchar2,NOM 
 
in varchar2,NATURE_IDENTIFIANT in varchar2, VALEUR_IDENTIFIANT in varchar2, MESSAGE_ERREUR in varchar2) IS
 
LC$Requete2 varchar2(256) := 'SELECT * FROM '||NOM_TABLE||' WHERE '||CONDITION ;
Valeur_I varchar2(256);
crow curseur;
 
BEGIN
 
OPEN crow FOR LC$Requete2;
 
FOR row in crow LOOP	
 
 
			EXECUTE IMMEDIATE 'INSERT INTO EGYWK.SG_W_ERROR_INTERF values 
 
('||NOM_INTERFACE||','||LA_DATE||','||NOM||','||NATURE_IDENTIFIANT||','||VALEUR_IDENTIFIANT||','||MESSAGE_ERREUR||')';
 
END LOOP;
 
END ;
en gros je fais une requête select et pour chaque ligne résultat je dois écrire certaines données dans une table d'erreur. Mon probleme se pose dans le stockage des lignes résultats. J'ai beau avoir essayé les curseurs et tout, ca marche pas. Je pense que c'est parce que le nom de la table est également passé en paramètre... Si quelqu'un à déjà fait. Merci