/*============================================================
示例. 存储过程和参数为输出类型游标
============================================================*/
--返回员工薪水结果集
CREATE OR REPLACE PROCEDURE proc_emp(empsalary OUT SYS_REFCURSOR) AS
BEGIN
OPEN empsalary FOR
SELECT empno,sal FROM emp;
END proc_emp;
--调用proc_emp存储过程,显示员工薪水
DECLARE
v_empno emp.empno%type;
v_sal emp.sal%type;
emp_salary sys_refcursor;
BEGIN
proc_emp(emp_salary);
LOOP
FETCH emp_salary INTO v_empno, v_sal;
EXIT WHEN emp_salary%notfound;
DBMS_OUTPUT.PUT_LINE(v_empno||'的薪水是' ||v_sal);
END LOOP;
CLOSE emp_salary;
END;
/*============================================================
示例. 存储过程和参数为输出类型游标
============================================================*/
--返回员工薪水结果集
CREATE OR REPLACE PROCEDURE proc_emp(empsalary OUT SYS_REFCURSOR) AS
BEGIN
OPEN empsalary FOR
SELECT empno,sal FROM emp;
END proc_emp;
--调用proc_emp存储过程,显示员工薪水
DECLARE
v_empno emp.empno%type;
v_sal emp.sal%type;
emp_salary sys_refcursor;
BEGIN
proc_emp(emp_salary);
LOOP
FETCH emp_salary INTO v_empno, v_sal;
EXIT WHEN emp_salary%notfound;
DBMS_OUTPUT.PUT_LINE(v_empno||'的薪水是' ||v_sal);
END LOOP;
CLOSE emp_salary;
END;