[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    27

    Question Felhler in SQL-Prozedur abfangen

    Hallo NG,

    eben in der Hektik des Tages die falsche NG erwischt desahlb hier nochmal.

    wie kann ich ich in einer SQL-Prozedur einen Fehler abfangen?

    In nachfolgenden SQL-Statement soll ein Fehlerhinweis erfolgen wenn nach den spezifizierten Informationen kein Datensatz gefunden wird.

    -- Selektiere Metadaten-Informationen aus CC-Master
    SELECT UPPER ( TEXTVALUE ) INTO V_WHEREIMPORT FROM CC_MASTER . META_ENV WHERE UPPER ( APPLIKATION ) = 'STATISTISCHE KOSTENSTELLEN' AND UPPER ( CHECKTEXT ) = 'WHEREIMPORT' ;
    Folgendes habe ich ausprobiert, aber ohne Erfolg (weiß aber auch nicht richtig wie ich das einbauen kann)
    DECLARE EXIT HANDLER FOR SQLSTATE VALUE '02000'
    --SIGNAL SQLSTATE '02000'
    -- SET MESSAGE_TEXT = 'nicht
    gefunden' ;

    wer weiß Rat, vielen Dank im voraus

    Grüße HP

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    8
    Zitat Zitat von HPKahn
    Hallo NG,

    eben in der Hektik des Tages die falsche NG erwischt desahlb hier nochmal.

    wie kann ich ich in einer SQL-Prozedur einen Fehler abfangen?

    In nachfolgenden SQL-Statement soll ein Fehlerhinweis erfolgen wenn nach den spezifizierten Informationen kein Datensatz gefunden wird.

    -- Selektiere Metadaten-Informationen aus CC-Master
    SELECT UPPER ( TEXTVALUE ) INTO V_WHEREIMPORT FROM CC_MASTER . META_ENV WHERE UPPER ( APPLIKATION ) = 'STATISTISCHE KOSTENSTELLEN' AND UPPER ( CHECKTEXT ) = 'WHEREIMPORT' ;
    Folgendes habe ich ausprobiert, aber ohne Erfolg (weiß aber auch nicht richtig wie ich das einbauen kann)
    DECLARE EXIT HANDLER FOR SQLSTATE VALUE '02000'
    --SIGNAL SQLSTATE '02000'
    -- SET MESSAGE_TEXT = 'nicht
    gefunden' ;

    wer weiß Rat, vielen Dank im voraus

    Grüße HP
    bin auch noch kein spezialist in sql-proceduren, habe aber folgendes gemacht:
    am anfang:
    DECLARE END_TABLE INT DEFAULT 0;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET END_TABLE = 1;
    DECLARE EXIT HANDLER FOR SQLSTATE '38S03'
    RESIGNAL SQLSTATE '38S03'
    SET MESSAGE_TEXT = 'UB_UPDATE:Keine Unterbrechung gefunden.';


    SELECT ub_von, ub_bis, abonr, lfd
    INTO ubvon, ubbis, x_abonr, x_lfd
    FROM vaboub
    WHERE recno = p_recno
    AND ub_erl = 'N';
    -- wenn kein Satz gefunden end_table = 1
    IF (end_table = 1)
    THEN SIGNAL SQLSTATE '38S03';
    END IF;
    Servus
    Perry Rhodan
    Mike

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •