-
Cobol-Programm mit Embedded PL/SQL - RAISE-Anweisung
Hallo Forum,
ich habe folgendes Problem:
Im Cobol-Programm wird mittels eines PL-SQL-Blocks (DECLARE P_PROZNR NUMBER(03) := 008; P_KANR NUMBER(04) := 1700; BEGIN PACK_QIMB019.CONTROL(P_PROZNR,P_KANR); END; ) eine Prozedur aus einem Package aufgerufen. Diese Prozedur ruft ihrerseits weitere Prozeduren mit weiteren Prozeduren auf (insgesamt 3 Ebenen ohne das COBOL-Programm).
Wenn auf der unteren Ebene eine Exception ausgelöst wird, dann wird diese Exception im Exception-Handler behandelt und mit RAISE jeweils weiter nach oben durchgereicht bis ins COBOL-Programm. Fehlerbehandlung in jedem Exception-Handler: DBMS_OUTPUT.PUT_LINES und Einträge in eine Log-Tabelle. DBMS_OUTPUT.GET_LINES mit Display-Ausgabe sowie der Programmabbruch werden vom COBOL-Programm durchgeführt.
Fallgruppen:
A) ORA-06510: PL/SQL: unhandled user-defined exception
B) ORA-06511: PL/SQL: Cursor wurde bereits geöffnet
A und B: o.k., die Exception Handler werden der Reihe nach durchlaufen, alle entsprechenden Anweisungen korrekt ausgeführt.
C) ORA-06502: PL/SQL: numeric or value error: character string buffer too small. ORA-06512: at "CALLCENTER.PACK_QIMB019", line 104.ORA-20667: . kann Eintrag in
Tabelle KONTERG nicht zufüge
Dieser Fehler wird durch einen Trigger ausgelöst, der den Insert bestimmter Werte nicht zulässt.
D) ORA-01403: PL/SQL: NO_DATA_FOUND
In den Fällen C und D wird DBMS_OUTPUT aus den Exception-Handlern der Prozedurenebenen 2 und 3 bedient, nicht jedoch aus dem Exception-Handler der direkt vom COBOL-Programm aufgerufenen Prozedur. Einträge in die Log-Tabelle erfolgen nach dem Fehler gar nicht mehr, obwohl nach jedem Eintrag ein COMMIT abgesetzt würde.
d.h.
Ebene 3: DBMS_OUTPUT: ja, Log_Tabelle: nein, RAISE: ja
Ebene 2: DBMS_OUTPUT: ja, Log_Tabelle: nein, RAISE: ja
Ebene 1: DBMS_OUTPUT: nein, Log_Tabelle: nein, RAISE: ja
COBOL-Programm: Ausgabe DBMS_OUTPUT, Programmabbruch
Warum verläuft die Fehler-Verarbeitung in den Fallgruppen C und D nicht ordnungsgemäß? Auffällig ist, daß es sich hier um Fehler handelt, die ihren Ursprung außerhalb der Prozedur haben.
MfG
Klaus
Similar Threads
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 13-05-09, 19:50
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By e_sichert in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 03-05-06, 10:47
-
By activ in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 24-05-02, 07:32
-
By Wirnitzer in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 09-08-01, 10:31
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks