ORACLE函数Function返回数据集合

Oracle中的Function可以通过创建自定义的Object和Table类型来返回数据集合。具体步骤包括定义Object类型、Table类型,编写Function将查询结果转换为指定类型并使用PIPELINED关键字返回,最后通过SQL语句`select * from table(F_EMP_LIST)`进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle中的Function可以返回自定义的数据集,记录参考如下:

 

1,Object对象

/*自定义类型 OBJECT Type*/

CREATE OR REPLACE TYPE EMP_ID_TYPE AS OBJECT(org_cd varchar2(10));

 

2,Table对象

/*自定义类型 TABLE Type*/

CREATE OR REPLACE TYPE EMP_ID_TABLE  AS TABLE of EMP_ID_TYPE;

 

3,编写Function

 

CREATE OR REPLACE FUNCTION F_EMP_LIST ()

 

RETURN EMP_ID_TABLE PIPELINED IS

 

 CURSOR emp_list_cursor is

            select  '20001' as emp_id from dual union 

            select  '20002' as emp_id from dual union 

            select  '20003' as emp_id from dual;

 

    v_emp_id_type EMP_ID_TYPE;   --Object对象

    v_emp_id varchar2(5);              --临时变量

 

BEGIN

 

     OPEN emp_list_cursor;

          loop

              

              fetch emp_list_cursor into v_emp_id;

              exit when emp_list_cursor%notfound;

              

              v_emp_id_type := EMP_ID_TYPE(v_emp_id);  --取值

              PIPE ROW(v_emp_id_type);   --管道

              

          end loop;

      CLOSE emp_list_cursor;

 

      return;

 

END;

 

3,测试SQL

 

select * from table(F_EMP_LIST);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值