用Table变量返回多行数据
要讓 PL/SQL 函數(shù)返回數(shù)據(jù)的多個行,必須通過返回一個 REF CURSOR 或一個數(shù)據(jù)集合來完成。REF CURSOR 的這種情況局限于可以從查詢中選擇的數(shù)據(jù),而整個集合在可以返回前,必須進行具體化。Oracle 9i 通過引入的管道化表函數(shù)糾正了后一種情況。下面是一個具體的例子:
create type PersonInfo as object(id number,name varchar2(200));
create type PersonInfoArray as table of PersonInfo ;
create or replace function GetPersonInfo
return PersonInfoArray pipelined
is
v_PersonInfo PersonInfo;
begin
for v_count in 1..30 loop
v_PersonInfo:=PersonInfo(id => v_count,name => 'sss'||to_char(v_count));
pipe row (v_PersonInfo);
end loop;
return ;
end GetPersonInfo ;
?
--查詢數(shù)據(jù)
select * from table(GetPersonInfo)
轉(zhuǎn)載于:https://blog.51cto.com/468302/441416
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的用Table变量返回多行数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeBSD没有安装Ports的解决办
- 下一篇: 解决mysqlslap执行命令报错(BE