Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

%NOTFOUND is not working correct in my procedure

KlaBaDec 2 2019 — edited Dec 2 2019

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?

This post has been answered by Solomon Yakobson on Dec 2 2019
Jump to Answer
Comments
Post Details
Added on Dec 2 2019
9 comments
915 views