9i : problème avec MERGE INTO
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):
Code:
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) |
L'erreur est la suivante :
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