存储过程返回数组对象的示例代码。
实际上,它相当于返回位于列表中的对象数据,定义如下1。创建存储过程对象
复制代码代码如下所示:
创建或替换型t_account_month
为对象(
account_id数,
init_amount数,
debit_amount数,
credit_amount数
)
2。创建存储过程数组
复制代码代码如下所示:
创建或替换型t_account_month_table
为表t_account_month
三.创建存储过程
复制代码代码如下所示:
创建或替换功能account_month(tdate日期)
返回t_account_month_table流水线
作为
v_account_month t_account_month;
v_date日期;
开始
v_date:= tdate;
如果v_date为null,然后
v_date:= SYSDATE;
最后如果;
Myrow在(
选择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,
和(解码(标志(trunc(d.create_time,'year ')- trunc(SYSDATE,'year ')),0,
d.debit_unposted + d.debit_posted,
0))debit_amount,
和(解码(标志(trunc(d.create_time,'year ')- trunc(SYSDATE,'year ')),0,
d.credit_unposted + d.credit_posted,
0))credit_amount
从account_daily_veiw D
集团通过d.account_id
环)
v_account_month:= t_account_month(
myrow.account_id,
myrow.init_amount,
myrow.debit_amount,
myrow.credit_amount
);
管排(v_account_month);
结束循环;
返回;
结束;