PDA

View Full Version : Fehler abfangen



HPKahn
29-03-05, 12:00
Hallo NG,

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

BenderD
29-03-05, 12:54
Hallo,

das braucht keinen ErrorHandler, einfach SQLSTATE abfragen mit IF und dann machen was man denn machen will.

mfg

Dieter Bender


Hallo NG,

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

B.Hauser
29-03-05, 14:19
Es gibt ein gutes Redbook, in dem u.a. das Error Handling in Stored Procedures abgehandelt wird:
Stored Procedures, Triggers and User Defined Functions on DB2 Universal Database for iSeries (http://www.redbooks.ibm.com/abstracts/sg246503.html?Open)
Kapitel 8.2

fred_hanau
30-03-05, 08:52
das braucht keinen ErrorHandler, einfach SQLSTATE abfragen mit IF und dann machen was man denn machen will.

Ich hatte das in RPG immmer mit
if sqlcod=0
...
und in Cobol
if sqlcode=0
...

gehandelt

Gruß aus Hanau