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 28/01/2008, 18h42   #1
Invité régulier
 
Inscription : août 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 35
Points : 7
Points : 7
Par défaut Se deconnecter en PL/SQL

Bonjour,

Voici mon problème :

Je cherche à faire un script en PL/SQL qui aurait le comportement suivant :

si une valeur trouvée en base de données est égale à une certaine valeur connue à l'avance, alors on fait qqch
par contre si ce n'est pas le cas, on se déconnecte de la base

(le but de la deconnexion étant d'empecher de jouer d'autres scripts en suivant).

Le problème est que l'instruction DISCONNECT n'est pas reconnue dans un bloc PL/SQL. (J'obtiens l'erreur PLS-00201: l'identificateur 'DISCONNECT' doit être déclaré)

Est-ce que quelqu'un aurait une idée pour faire ça?

Merci par avance
stehga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 18h45   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
même la déconnexion n'empêchera pas de lancer un autre script, par ailleurs la réponse dépend du client utiliser et ne sera probablement pas une réponse PL/SQL (à moins d'un kill session )
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 21h05   #3
Invité régulier
 
Inscription : août 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 35
Points : 7
Points : 7
Je pense que je devrais expliquer plus précisèment ce que je souhaite faire :

en gros, je lance une série de scripts sql à partir d'un script shell en me connectant à sqlplus.

Ca me donne quelque chose du genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
sqlplus monuser/monpwd@mabd
 
spool fichier1
start script1.sql
spool off;
 
spool fichier2
start script2.sql
spool off;
 
spool fichier3
start script3.sql
spool off;
 
etc...
Ce que je voudrais, c'est que si une condition donnée n'est pas réalisée dans le script1, j'aimerais déconnecter ma session sqlplus de façons à ne pas jouer les scripts suivants.
Il y a peut-être d'autres façons de faire auxquelles je n'ai pas pensé, toute suggestion est la bienvenue.

Ma version d'oracle est la version 9.
stehga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 09h18   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
génére une erreur avec un RAISE et ajoute :

Code :
WHENEVER sqlerror exit failure
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 11h01   #5
Invité régulier
 
Inscription : août 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 35
Points : 7
Points : 7
Je n'avais pas pensé à ça et effectivement, cela fonctionne!

Merci beaucoup pour ton aide.
stehga 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 12h49.


 
 
 
 
Partenaires

Hébergement Web