IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

sortie du processus sqlplus à partir d'une procédure PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    essaye avec le mot clé exit

    cela devrais te faire sortir de sqlplus

    @+
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Merci bien
    c'est tout a fait la réponse que j'attendais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/02/2009, 13h27
  2. Réponses: 0
    Dernier message: 21/12/2007, 12h15
  3. Réponses: 9
    Dernier message: 15/10/2007, 10h20
  4. Appel de procedure a partir d'une procédure
    Par MrEddy dans le forum SQL
    Réponses: 1
    Dernier message: 25/07/2007, 18h34
  5. Réponses: 8
    Dernier message: 07/09/2006, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo