PL/SQL code Problem in Apex
geschrieben von:
skahlert (---.bayern.de)
Datum:
Guten morgen zusammen!
Ich hoffe ihr könnt mir bei einem Problem helfen an dem ich schon seit 2 tagen sitze. Und zwar geht es darum in der Apex Oberfläche einen ORA-20001 abzufangen, der auftritt wenn in einem Updatable Report ein Wert eingetragen wird, der bereits in dem Bericht bzw. in der DB existiert. Es gibt für die Tabelle "tbl_schichtigkeit" einen Unique Key der aus 2 Spalten besteht (LNG_INV_PT_ID und INT_SCHICHTIGKEIT). Nun muss ich also eine Routine haben, die vor dem Speichern ausgeführt wird und überprüft ob Wert den es zu Speichern gilt, schon in der DB vorhanden ist. Dafür habe ich mit folgendem Code angefangen der jedoch nicht richtig funktioniert und nicht die Warnung ausbringt wenn der Wert bereits vorhanden sein müsste. Könnt Ihr mir eventuell dabei helfen den Code zu bearbeiten damit er die Prüfung durchführt bzw. kennt Ihr eine Alternative?
Gruss,
Sebastian
DECLARE
n NUMBER := 1;
anzahl_schicht INT;
BEGIN
FOR j IN n..APEX_APPLICATION.G_F03.count
LOOP
FOR c IN(SELECT 1 into anzahl_schicht
FROM tbl_schichtigkeit
WHERE int_schichtigkeit = APEX_APPLICATION.G_F03(j)
AND lng_inv_pt_id = :P52_PTIDS
)
LOOP
If anzahl_schicht > 0 then
RETURN 'Fehler';
ELSE RETURN NULL;
END IF;
END LOOP;
END LOOP;
RETURN NULL;
END;