Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 27/07/2011, 13h59   #1
Membre actif
 
Inscription : mai 2004
Messages : 725
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 725
Points : 193
Points : 193
Par défaut Commande SQL qui ne fait pas update ?

Bonjour,

J'ai réalisé 2 commandes sql dans une boucle pl sql.
L'update sur la table Document marche mais pas sur la table radiologie.

La table radiologie est modifié mais avec toujours les memes valeurs . Je n'ai aucune idée pourquoi dans le cas de la table document l'update se passe bien mais pas dans le cas de la table radiologie.

Je ne comprends pas pourquoi il y a une mauvaise update de la table Radiologie dans ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
DECLARE
 
CURSOR c_SAG_DATA IS
SELECT * FROM SAG_DATA_TEMP;
 
BEGIN
 
    FOR j IN c_SAG_DATA LOOP
 
 
	UPDATE  radiologie rad 
	SET     rad.uh_demandeuse   = j.code_uh_demande
		,   rad.nip             = j.nip_actif
	WHERE   EXISTS
			(   SELECT  1
				FROM    radiologie rad
				WHERE   CONCAT(rad.id_demande, rad.id_examen) = j.s_aphp_reference_acte_rados
			);
 
 
	UPDATE  document doc 
	SET     doc.nda     = j.nda
		,   doc.noip    = j.nip_actif
	WHERE   EXISTS
			(   SELECT  1
				FROM    radiologie rad
				WHERE   CONCAT(rad.id_demande, rad.id_examen) = j.s_aphp_reference_acte_rados
					AND rad.id_document_lie = doc.id_document
			);
 
    END LOOP;
COMMIT;
 
END;
/
exit;

Merci
Battosaiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 15h23   #2
Membre actif
 
Inscription : mai 2004
Messages : 725
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 725
Points : 193
Points : 193
Voici la correction de ce probleme :

Code :
1
2
3
4
5
6
7
8
9
10
 
	UPDATE  radiologie rad 
	SET     rad.uh_demandeuse   = j.code_uh_demande
		,   rad.nip             = j.nip_actif
	WHERE   EXISTS
			(   SELECT  1
				FROM    document doc
				WHERE   CONCAT(rad.id_demande, rad.id_examen) = j.s_aphp_reference_acte_rados
					AND rad.id_document_lie = doc.id_document
			);
Battosaiii 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 15h19.


 
 
 
 
Partenaires

Hébergement Web