Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2007, 15h46   #1
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 290
Points : 1 290
Par défaut Merge sur une seule table

Bonjour,

je voudrais faire un UPDATE ou INSERT en fonction de certaines valeurs au sein d'un statement.

J'ai lu dans la FAQ qu'il fallait utiliser le MERGE. Or, j'ai une seule table et les exemples utilisent deux tables. Et l'insertion se fait à partir de requêtes 'en dur' à partir de mon langage de programmation. C'est sûrement trivial, mais ma connaissance des spécificités d'Oracle est on ne peut plus limitée.
dingoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2007, 09h59   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Utilises la table dual pour tes paramètres
Code :
1
2
3
4
5
6
7
8
MERGE INTO CLIENT e
	USING (SELECT p_client_id AS pcid FROM dual) P
	ON (e.client_id = p.pcid)
WHEN MATCHED THEN
	UPDATE SET e.nom = p_nom
WHEN NOT MATCHED THEN
	INSERT (e.CLIENT_ID, e.NOM)
	VALUES (p_client_id, p_nom);
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2007, 10h09   #3
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 290
Points : 1 290
Merci beaucoup, j'adapte, je teste et je marque résolu :-)
dingoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web