Salut,
J'ai conçu un script qui génère des requêtes dynamiques dont le contenu n'est pas correctement exécuté ;(
Voici un exemple de requête qui ne passe pas (execute immediate):
L'erreur est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 MERGE INTO E1XL1.CMPACTION d USING (SELECT VERSION,COMPONENTNAME,ACTIONNAME,DESCRIPTION,ISCLOSE FROM E1XL0.CMPACTION) s ON (d.VERSION=s.VERSION AND d.COMPONENTNAME=s.COMPONENTNAME AND d.ACTIONNAME=s.ACTIONNAME) WHEN MATCHED THEN UPDATE SET d.VERSION = s.VERSION,d.COMPONENTNAME = s.COMPONENTNAME,d.ACTIONNAME = s.ACTIONNAME,d.DESCRIPTION = s.DESCRIPTION,d.ISCLOSE = s.ISCLOSE WHEN NOT MATCHED THEN INSERT (d.VERSION,d.COMPONENTNAME,d.ACTIONNAME,d.DESCRIPTION,d.ISCLOSE) VALUES (s.VERSION,s.COMPONENTNAME,s.ACTINNAME,s.DESCRIPTION,s.ISCLOSE)
ORA-00904: "D"."VERSION" : identificateur non valide
il me souligne ça : "ON (d.VERSION"
La table E1XL1.CMPACTION d contient forcément le champ VERSION puisque c'est du complètement dynamique, je génère les champs à partir de ALL_TAB_COLUMNS etc.
Je suis quand même allé vérifier bien sûr.
Je nage un peu, je pense que j'ai du mal comprendre MERGE INTO mais pourtant je fais tout pareil que dans l'exemple de psoug.org dispo à cette adresse :
http://www.psoug.org/reference/merge.html
Voilà, votre aide est la bienvenue
a+
seb
Partager