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!

Cursor attribute %NOTFOUND is not working using cursor FOR LOOP

AB115Nov 28 2019 — edited Nov 28 2019

Hello Experts,

Database Version: 11.2.0.1

we are using below code display message for cursor attribute %NOTFOUND for cursor FOR LOOP but it's not displaying,

Table and Script are as below,

drop table emp

/

drop table dept1

/

create table emp(emp_id varchar2(10), salary number, dept_id number)

/

create table dept1(dept_id number, dept_name varchar2(30), manager_name varchar2(40))

/

insert into emp values (1,1000,10)

/

insert into emp values (2,2000,20)

/

insert into emp values (3,3000,30)

/

insert into emp values (4,4000,40)

/

insert into emp values (5,5000,50)

/

insert into emp values (6,6000,60)

/

insert into dept1 values (10,'ABC1','MGR1')

/

insert into dept1 values (20,'ABC2','MGR2')

/

insert into dept1 values (30,'ABC3','MGR3')

/

insert into dept1 values (40,'DEF1','MGR4')

/

insert into dept1 values (50,'ABC4','MGR5')

/

commit

/

Anonymous Block:

DECLARE

    CURSOR c1_emp

    IS

        SELECT emp_id, salary, dept_id

          FROM emp

         WHERE dept_id = 60;

    CURSOR c1_dept (v_dept NUMBER)

    IS

        SELECT dept_id, dept_name, manager_name FROM dept1

         where dept_id = v_dept;

BEGIN

    FOR rec_emp IN c1_emp

    LOOP

        FOR rec_dept IN c1_dept(rec_emp.dept_id)

        LOOP

            IF c1_dept%NOTFOUND

            THEN

                DBMS_OUTPUT.put_line (

                    'No Record Found for: ' || rec_emp.dept_id);

            END IF;

        END LOOP;

    END LOOP;

END;

Please suggest.

Thanks

This post has been answered by Cookiemonster76 on Nov 28 2019
Jump to Answer
Comments
Post Details
Added on Nov 28 2019
8 comments
16,457 views