存储过程返回数组对象示例代码

技术教程 2026-01-08 16:09:44 浏览
返回数组对象示例代码

其实就相当于返回List里面放的对象数据,定义如下1.创建存储过程对象

复制代码 代码如下:

CREATE OR REPLACE type "T_ACCOUNT_MONTH"as object(ACCOUNT_ID NUMBER,INIT_AMOUNT NUMBER,DEBIT_AMOUNT NUMBER,CRedIT_AMOUNT NUMBER)

2.创建存数过程数组

复制代码 代码如下:

CREATE OR REPLACE TYPE "T_ACCOUNT_MONTH_TABLE"as table of t_account_month

3.创建存储过程

复制代码 代码如下:

create or replace function account_month(tDate IN DATE)return t_account_month_table pipelinedasv_account_month t_account_month;v_date DATE;beginv_date:=tDate;IF v_date IS NULL TheNv_date:=sysdate;END IF;for myrow in (select d.ACCOUNT_ID,sum(decode(sign(d.create_time-trunc(v_date,'month')),-1,d.debit_unvoucher + d.debit_unposted +d.debit_posted - d.CREDIT_UNVOUCHER -d.CREDIT_UNPOSTED- d.CREDIT_POSTED_D,0)) INIT_AMOUNT,sum(decode(sign(trunc(d.create_time,'year')-trunc(sysdate,'year')),0,d.debit_unposted+d.debit_posted,0)) DEBIT_AMOUNT,sum(decode(sign(trunc(d.create_time,'year')-trunc(sysdate,'year')),0,d.credit_unposted+d.credit_posted,0)) CREDIT_AMOUNTfrom ACCOUNT_DAILY_VEIW dgroup by d.ACCOUNT_ID) loopv_account_month := t_account_month(myrow.ACCOUNT_ID,myrow.INIT_AMOUNT,myrow.DEBIT_AMOUNT,myrow.CREDIT_AMOUNT);pipe row (v_account_month);end loop;return;end;

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐