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 07/02/2007, 18h03   #1
Invité régulier
 
Inscription : février 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 19
Points : 7
Points : 7
Par défaut sortie du processus sqlplus à partir d'une procédure PL/SQL

Bonjour,

Voici mon problème :
Je lance un script sql à partir de sqlplus et ce script à la struture suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT 'tututu' FROM DUAL;
 
SET serveroutput ON;
DECLARE
  	E EXCEPTION;
BEGIN
  	--code
END;
/
 
SELECT 'tatat' FROM DUAL;
Dans ce script je souhaiterais pouvoir empecher l'exécution de la ligne "SELECT 'tatat' FROM DUAL;" et de tout le code SQL qui pourrait suivre ma fonction PL/SQL en executant un commande dans le bloc "--code".

En résumé, comment tuer ou terminer le processus sqlplus à partir de ma procédure PL/SQL.

merci pour vos réponses qui je l'expère seront nombreuse
fanchic29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 07h24   #2
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

essaye avec le mot clé exit

cela devrais te faire sortir de sqlplus

@+
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 08h17   #3
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
En PL/SQL, exit ne peut être utilisé que dans une boucle et ne permet que de sortir de la boucle et non du bloc PL/SQL englobant (http://download-uk.oracle.com/docs/c...htm#sthref2698).

Une solution consiste à utiliser l'instruction SQL*Plus WHENEVER SQLERROR ...
(qui provoque l'arrêt du script exécute par SQL*Plus en cas d'erreur) en conjonction avec l'instruction PL/SQL RAISE:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
whenever sqlerror exit failure;
SELECT 'tututu' FROM DUAL;
 
'TUTUT
------
tututu
 
 
SET serveroutput ON;
DECLARE
  2  E EXCEPTION;
  3  BEGIN
  4          --code
  5      raise e;
  6  END;
  7  /
DECLARE
*
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 5
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 09h25   #4
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Citation:
En PL/SQL, exit ne peut être utilisé que dans une boucle et ne permet que de sortir de la boucle et non du bloc PL/SQL englobant
Oui, mais là je ne suis pas dans une boucle PL

Pour quitter sqlplus il faut faire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
SELECT 'tututu' FROM DUAL;
 
SET serveroutput ON;
DECLARE
  	E EXCEPTION;
BEGIN
  	--code
END;
/
Exit
 
SELECT 'tatat' FROM DUAL;
Dans ce cas là : SELECT 'tatat' FROM DUAL; ne sera pas exécuter.
Quit marche aussi je crois
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 09h27   #5
Invité régulier
 
Inscription : février 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 19
Points : 7
Points : 7
Merci bien
c'est tout a fait la réponse que j'attendais
fanchic29 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 13h01.


 
 
 
 
Partenaires

Hébergement Web