我是一名表员工
EMPID EMPNAME
---------------------- ----------------------------------------------------------------------------------------------------
1 prabhu
2 b
3 c
我想编写将输出参数作为OBJECT发送的存储过程。
我在proc中的选择查询是
SELECT EMPID, EMPNAME FROM EMPLOYEE;
这将有多行,因此我想将此结果集作为对象
传递现在我已将类型创建为
CREATE OR REPLACE TYPE EMP IS OBJECT
(EMPNO NUMBER,EMPNAME VARCHAR2(100));
PROC:
create or replace PROCEDURE TYPEOUT(EOUT OUT EMP) AS
<code>
BEGIN
<CODE>
END TYPEOUT;
请帮我完成过程。
由于
答案 0 :(得分:1)
如果要返回多行,则需要一个支持多个实例的对象。这是一个集合类型,例如嵌套表:
CREATE OR REPLACE TYPE EMP_NT AS TABLE OF EMP;
我们使用BULK操作填充嵌套表。所以你的过程看起来像这样(注意参数datatype的变化):
create or replace PROCEDURE TYPEOUT(EOUT OUT EMP_NT)
AS
BEGIN
select emp(empid, empname)
bulk collect into eout
from employee;
END TYPEOUT;
读取对find out more about collections的PL / SQL引用。此外,该程序将使from exception handling受益。