oracle-EBS-PL/sql 管道函数pip

在做oracle 的项目中,有时候可以用类似 sql server中集合的概念,产生一个集合。

关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必须为集合,在函数中,PIPE ROW语句被用来返回该集合的单个元素,函数以一个空的RETURN 语句结束,以表明它已经完成。

 

create table tb1(k number, v varchar2(10));
insert into tb1(k, v) values(100,'aaa');
insert into tb1(k, v) values(200,'bbb');
insert into tb1(k, v) values(200,'ccc');
select * from tb1;     --先建议一个表

create type row_type1 as object(k number, v varchar2(10));
create type table_type1 as table of row_type1;
create or replace function FUN1 return table_type1 pipelined as
v row_type1;
begin
for myrow in (select k, v from tb1) loop
v := row_type1(myrow.k, myrow.v);
pipe row (v);
end loop;
return;
end;    --建立管道函数

select * from table(fun1);    --管道函数的语法,当成一个数据集

当遇到复杂些的语句的时候,你可以把这些语句都写在 FUN1这个函数中,最终变成一个数据集传递出来

 

作者: 轻烟随风
当前文章地址: https://www.zyxpp.com/oracle-ebs-pl-sql-pip/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭