Hi friends,
I’m using ORACLE 12.1.0.2.0.
In a procedure I try to use the following script with cursor%NOTFOUND.
declare
cSTOER_PROZESS STATUSHISTORIE.STOER_PROZESS%TYPE;
dSTOER_DATUM STATUSHISTORIE.STOER_DATUM%TYPE;
TYPE DynRecTyp IS RECORD (
AUFTRAG_ID STATUSHISTORIE.AUFTRAG_ID%TYPE,
BOOKNUMB STATUSHISTORIE.BOOKNUMB%TYPE,
R_L_IND STATUSHISTORIE.R_L_IND%TYPE,
STOERGRUND_NR STATUSHISTORIE.STOERGRUND_NR%TYPE);
TYPE DynTabTyp IS TABLE OF DynRecTyp
INDEX BY BINARY_INTEGER;
ctDyn DynTabTyp;
-- Cursor für Aufbereitung dyn. SQL
cursor cuDyn is
Select STH.AUFTRAG_ID,
STH.BOOKNUMB,
STH.R_L_IND,
STH.STOERGRUND_NR
from STATUSHISTORIE STH
where STH.STOER_PROZESS = 'STD-Error'
and STH.STOERGRUND_NR <> '1';
begin
IF cuDyn%ISOPEN THEN CLOSE cuDyn; END IF;
OPEN cuDyn;
FETCH cuDyn BULK COLLECT INTO ctDyn;
IF cuDyn%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE ( 'No data found' );
CLOSE cuDyn;
RETURN;
END IF;
CLOSE cuDyn;
..
..
..
END;
/
If I use only the select-statement, I get 6 records as answer.
If I use the procedure, then the statement with cuDyn%NOTFOUND
says to me “No Data found”.
Where is my mistake?