oracle自定义函数和游标,没有自定义类型或游标的Oracle函数如何返回...

更新:请参阅第一个注释以获取不带大小限制的TABLE解决方案.

返回VARRAY或使用PIPELINED函数从中查询.

>对于VARRAY,请参见this文章以获取详细信息.从那里的代码示例:

CREATE OR REPLACE TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30)

/

CREATE OR REPLACE FUNCTION getEmpArray RETURN EMPARRAY

AS

l_data EmpArray := EmpArray();

CURSOR c_emp IS SELECT ename FROM EMP;

BEGIN

FOR emp_rec IN c_emp LOOP

l_data.extend;

l_data(l_data.count) := emp_rec.ename;

END LOOP;

RETURN l_data;

结束;

>对于PiPELINED功能,请检出here.代码示例:

create or replace function Lookups_Fn return lookups_tab

pipelined

is

v_row lookup_row;

begin

for j in 1..10

loop

v_row :=

case j

when 1 then lookup_row ( 1, 'one' )

--...

when 7 then lookup_row ( 7, 'seven' )

else lookup_row ( j, 'other' )

end;

pipe row ( v_row );

end loop;

return;

end Lookups_Fn;

/

select * from table ( Lookups_Fn );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值