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

DB2 Discussion :

[DB2][procedure stockee] Comment sortir en erreur?


Sujet :

DB2

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut [DB2][procedure stockee] Comment sortir en erreur?
    Bonjour

    Je suis encore nouveau sur DB2, et j'aurais besoin de faire sortir une procédure stockée en erreur dans un cas précis.
    J'ai trouvé l'instruction RAISE_ERROR mais je n'arrive pas à l'utiliser ^_^;

    Voici une partie de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        IF v_res <> 0
        THEN RAISE_ERROR('99001', 'ERREUR: L établissement n existe pas dans le référentiel');
        END IF;
    et le résultat qu'il m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [IBM][CLI Driver][DB2/NT] SQL0104N Une marque inattendue "RAISE_ERROR" figure à la suite de "v_res <> 0     THEN".  Parmi  les marques attendues, on  trouve : "RETURN".  LINE NUMBER=52.  SQLSTATE=42601
    (la variable v_res a bien été déclarée et initialisée )

    Est-ce que je m'y prends mal? Est-ce une instruction qui s'emploie ailleurs? Y a-t-il une autre solution pour sortir en erreur sur un IF comme celui-ci?

    (Pour info j'ai besoin de sortir en erreur dans un cas précis pour pouvoir utiliser la condition d'echec dans Datawarehouse Center)

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    J'ai trouvé ça :
    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
    22
    23
    24
    25
    CREATE PROCEDURE raise ( IN rating INTEGER )
    LANGUAGE SQL
    BEGIN
    DECLARE new_salary DECIMAL(9,2);
    DECLARE service DECIMAL(8,0);
    DECLARE v_empno CHAR(6) DEFAULT123456’;
    SELECT salary, current_date - hiredate
    INTO new_salary, service
    FROM employee
    WHERE empno = v_empno;
    IF service < 600
    THEN SIGNAL SQLSTATE ’II001’
    SET MESSAGE_TEXT = ’Insufficient time in service.’;
    END IF;
    IF rating = 1
    THEN SET new_salary =
    new_salary + (new_salary * .10);
    ELSEIF rating = 2
    THEN SET new_salary =
    new_salary + (new_salary * .05);
    END IF;
    UPDATE employee
    SET salary = new_salary
    WHERE empno = v_empno;
    END;
    Regarde au niveau de SIGNAL et SET MESSAGE_TEXT.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Ca marche nickel, merci pour ton aide!


  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Pas de quoi !

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

Discussions similaires

  1. [C#] Comment récupérer la valeur de retour d'une procédure stockée ?
    Par Jinroh77 dans le forum Accès aux données
    Réponses: 23
    Dernier message: 05/10/2006, 15h24
  2. [C#/ORACLE 9i] Comment executer une procedure stockée ?
    Par Etienne maheu dans le forum Accès aux données
    Réponses: 3
    Dernier message: 28/08/2006, 15h59
  3. [C#] Comment executer une procédure stockée ?
    Par focus_dotnet dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/08/2006, 13h30
  4. [C#] Comment appeler une procédure stockée avec multiple SELECT ?
    Par Piolet dans le forum Accès aux données
    Réponses: 2
    Dernier message: 08/06/2006, 16h04
  5. Réponses: 2
    Dernier message: 14/05/2006, 19h36

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