|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : septembre 2004 Messages : 26 ![]() |
Bonjour à tous,
Je fais le MERGE suivant: Code :
La partie en vert ne m'intéresse pas, mais quand je supprime le WHEN MATCHED, j'ai le message d'erreur suivant: Donc, je la laisse en mettant un UPDATE sur un champ, sans changer sa valeur Mais alors, j'ai un autre message d'erreur: Code :
"ORA-00904: "TABLE_CIBLE"."ID" : identificateur non valide" Au bout du compte, ce que je cherche à faire, c'est d'insérer si la ligne n'existe pas, mais de ne rien toucher si la ligne existe. Merci de votre aide |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
En fonction de la version d'Oracle, Merge est plus (10g) ou moins (9i) flexible.
Mais si ne voulez qu'insérer n'utilisez pas Merge! Utilisez Insert Into table cible select from table_source where not exists dans cible. Quelle version d'Oracle utilisez vous ? |
|
|
10
|
|
|
#3 |
![]() ![]() |
Il faudrait également la description de vos deux tables afin de vérifier qu'il n'y ait pas d'erreur, le second message indique que la colonne ID n'existe pas dans TABLE_CIBLE.
Prenez aussi l'habitude d'aliaser toutes vos colonnes, aussi bien dans les parties UPDATE qu'INSERT.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 | |||||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Citation:
Code :
Code :
|
|||||
|
|
10
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : septembre 2004 Messages : 26 ![]() |
Merci à tous les 2.
En effet, il est bien plus simple de faire un INSERT WHERE NOT EXISTS, tellement simple qu'on n'y pense pas forcément ![]() Pour info, j'étais en v9.2 Bonne journée |
|
|
00
|
|
|
#6 |
![]() ![]() |
Bien vu mnitu pour la solution et la clarification du message d'erreur en 10g !
__________________
Email : http://scr.im/waldar |
|
00
|
Copyright © 2000-2012 - www.developpez.com