oracle 函数循环结果集,【ORACLE】用FUNCTION动态获得结果集

主要说明RETURNPIPELINED,经验者请绕道。最近我得到了一个需求:要求为method传入String,内容如用户ID0,用户ID1,用户ID2...,然后根据这些ID返回一个结果集作

正好ORACLE方面博客还没有这方面内容,趁此机会便写一小段。

既然我们要返回一个结果集,那便是要得到一个TABLE OF XXX类型,XXX可以是VARCHAR2或者INTEGER或者某个表的%ROWTYPE,但我的情况稍微复杂一点,我要自己创建一个OBJECT TYPE。

于是我们要写的FUNCTION的RETURN类型是这样创建的:CREATE OR REPLACE TYPE TYP_USER_RECORD AS OBJECT (USER_ID CHAR(40),USER_NUM VARCHAR2(200),CREATE_DATE DATE);

CREATE OR REPLACE TYPE TYP_USER_TBL AS TABLE OF TYP_USER_RECORD;

下面是FUNCTION的创建:CREATE OR REPLACE FUNCTION REGROUP_USER_BY_USERIDSTR(USERIDSTR IN VARCHAR2)

RETURN TYP_USER_TBL

PIPELINED IS

--参数声明开始

TYPE USER_CURSOR IS REF CURSOR;

USER_INFO_LIST USER_CURSOR;

--用来获得检索结果的CURSOR

TYPE USER_ROW IS RECORD(

USER_ID CHAR(40),USER_NUM VARCHAR2(200),CREATE_DATE DATE);

USER_INFO USER_ROW;

--用于提取CURSO

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值