Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 18/04/2011, 11h34   #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 Mon script de commande sql ne s'execute pas !

Bonjour,

J'ai réalisé un script qui devrait permettre de updater une table radiologie.
Malheureusement le script ne fait rien car la table n'est pas modifiée.
Il n'y a pas d'erreur dans le log non plus.
Voici le script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
FUNCTION updateRadiologieTable
{
sqlplus -s /nolog >/dev/NULL  <<-EOF
connect $SCHEMA/$SCHEMAPW
 
SET trimspool ON
spool /app/bsr/MDE1BSR/home/users/amde1bsr/update_table_radiologie.log 
 
whenever sqlerror exit 1;
 
 
UPDATE radiologie rad
   SET (rad.uh_demandeuse,rad.nip) = (SELECT sda.code_uh_demande,sda.nip_actif
	   		FROM SAG_DATA_TEMP sda
	   		   	WHERE CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) = sda.s_aphp_reference_acte_rados)
			WHERE CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) IN (SELECT s2.ref FROM SAG_DATA_TEMP s2)
 
 
spool off
exit
EOF
}

Pourtant la commande sql marche depuis mon client Toad .

Lorsque j'execute cette commande ci dessous la table radiologie est executée correctement :

Code :
1
2
3
4
5
6
7
 
 
UPDATE radiologie rad
   SET (rad.uh_demandeuse,rad.nip) = (SELECT sda.code_uh_demande,sda.nip_actif
	   		FROM SAG_DATA_TEMP sda
	   		   	WHERE CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) = sda.s_aphp_reference_acte_rados)
			WHERE CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) IN (SELECT s2.ref FROM SAG_DATA_TEMP s2)
Merci
Battosaiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 13h48   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
il manque le commit
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/04/2011, 14h03   #3
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Non, il manque un point-virgule en fin d'update.
Dans sqlplus la commande exit effectue un commit si on ne précise pas de code de retour différent de 0.
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/04/2011, 14h23   #4
Membre actif
 
Inscription : mai 2004
Messages : 725
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 725
Points : 193
Points : 193
Merci pour vos reponses.

Effectivement ojo77 a raison. C'était un problème de point virgule !
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 04h59.


 
 
 
 
Partenaires

Hébergement Web