SQL cursor
create or replace procedure sp_employee
is
cursor cur_emp is
select first_name, salary
from employees;
fname varchar2(20);
salary number(9,2);
begin
open cur_emp(id);
loop
fetch cur_emp into fname, salary;
dbms_output.put_line(fname|| '==>' || salary);
exit when cur_emp%notfound;
end loop;
close cur_emp;
end;
/
create or replace procedure sp_employee2
(id in number)
is
cursor cur_emp(id2 number) is
select first_name, salary
from employees
where department_id = id2;
fname varchar2(20);
salary number(9,2);
begin
open cur_emp(id);
loop
fetch cur_emp into fname, salary;
dbms_output.put_line(fname|| '==>' || salary);
exit when cur_emp%notfound;
end loop;
close cur_emp;
end;
/
create or replace package pkg_emp
as
procedure sp_employee;
procedure sp_employee2(id in number);
end pkg_emp;
/
create or replace package body pkg_emp
as
procedure sp_employee
is
cursor cur_emp is
select first_name, salary from employees;
fname varchar2(20);
salary number(9,2);
begin
open cur_emp;
loop
fetch cur_emp into fname, salary;
dbms_output.put_line(fname|| '==>' || salary);
exit when cur_emp%notfound;
end loop;
close cur_emp;
end sp_employee;
procedure sp_employee2(id in number)
is
cursor cur_emp(id2 number) is
select first_name, salary from employees
where department_id = id2;
fname varchar2(20);
salary number(9,2);
begin
open cur_emp(id);
loop
fetch cur_emp into fname, salary;
dbms_output.put_line(fname|| '==>' || salary);
exit when cur_emp%notfound;
end loop;
close cur_emp;
end sp_employee2;
end pkg_emp;
/