关于oracle中table函数的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于oracle中table函数的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1678字,纯文字阅读大概需要3分钟。
内容图文
![关于oracle中table函数的使用](/upload/InfoBanner/zyjiaocheng/501/00cce78dda4a4f84ba60020517584bc7.jpg)
说明: 1、表函数可接受查询语句或游标作为输入参数,并可输出多行数据。
2、该函数可以平行执行,并可持续输出数据流,被称作管道式输出。
3、应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。
优势: 1、一些复杂的公共信息,但通过建立视图又实现不了,此时可以考虑使用管道输出。
2、涉及运算较多,写个简单SQL实现起来较为麻烦,用table可以实现。
使用步骤:1、创建一个object类型的数据库类型对象(注意:此类型必须定义为数据库对象级别的类型,而不能定义包、函数级别的类型。否则,函数外部代码是无法识别该类型的)。
CREATE OR REPLACE TYPE pay_code_obj_row AS OBJECT (
PAY_APPL_CODE VARCHAR2(100)--付款申请号
);
2、创建一个嵌套表类型的数据酷儿类型对象,该类型也将用作函数中定义的返回类型(注意:此类型也必须定义为数据库对象级别的类型)。
CREATE OR REPLACE TYPE pay_code_table IS TABLE OF pay_code_obj_row;
3、在函数中应用。
create or replace function F_BPC_GET_PAYBILLID(
BUDGET_DEPART_ID in VARCHAR2, --预算使用部门
PAY_BILL_TYPE in NUMBER--支付类别
)
return pay_code_table
as
t_pay_appl_code pay_code_table;
begin
if PAY_BILL_TYPE=51 then
select pay_code_obj_row(a.pay_appl_code) bulk collect
into t_pay_appl_code from T_BPC_BU_NEW_PAY_PAY_D a;
end if;
return t_pay_appl_code;
end F_BPC_GET_PAYBILLID;
小结:使用此函数,在函数中不能包含DML操作。除非在该函数定义为Oracle自治事务,即在声明函数时加上: PRAGMA AUTONOMOUS_TRANSACTION; 并在执行完DML后COMMIT。
关于oracle中table函数的使用
标签:优势 支付 ble return function 函数 识别 art mil
本文系统来源:https://www.cnblogs.com/cxyad/p/9788330.html
内容总结
以上是互联网集市为您收集整理的关于oracle中table函数的使用全部内容,希望文章能够帮你解决关于oracle中table函数的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。