Bonjour,

J'exécute une requête SQL dynamique à l'aide de EXECUTE IMMEDIATE et en utilisant le mot clef USING pour passer des variables, mais mon problème est que j'utilise deux fois un même paramètre dans la requête.
Oracle me sort un message d'erreur :

ORA-01008: Toutes les variables ne sont pas liées
ORA-06512: à "PSCM.NPALIMTBPSCM01", ligne 37
ORA-06512: à ligne 11



Exemple requête :

mySqlInsert :='INSERT INTO TABLEX (SELECT :1 FROM TABLEY a WHERE a.CODE=:1 AND a.PAYS=:2)';
EXECUTE IMMEDIATE mySqlInsert USING myCode, myPays;
COMMIT;
Deux fois :1 pose problème !

Je dois faire :

mySqlInsert :='INSERT INTO TABLEX (SELECT :1 FROM TABLEY a WHERE a.CODE=:2 AND a.PAYS=:3)';
EXECUTE IMMEDIATE mySqlInsert USING myCod, myCode, myPays;
COMMIT;
Une autre façon de procéder selon vous ? Je ne trouve pas cela propre...

Merci pour votre aide !