Oracle利用table()函数,我们可以将PL/SQL返回的结果集代替table。1、table()结合数组:create or replace type t_test as object(
id integer,
rq date,
mc varchar2(60)
);create or replace type t_test_table as table of t_test;create or replace function f_test_array(n in number default null) return t_test_table
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
v_test.extend();
v_test(v_test.count) := t_test(i,sysdate,"mc"||i);
end loop;
return v_test;
end f_test_array;
/select * from table(f_test_array(10));select * from the(select f_test_array(10) from dual);
2、table()结合PIPELINED函数:
create or replace function f_test_pipe(n in number default null) return t_test_table PIPELINED
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
pipe row(t_test(i,sysdate,"mc"||i));
end loop;
return;
end f_test_pipe;
/select * from table(f_test_pipe(20));select * from the(select f_test_pipe(20) from dual);3、table()结合系统包:
create table test (id varchar2(20));
insert into test values("1");
commit;
explain plan for select * from test;
select * from table(dbms_xplan.display);***************************************Oracle查询结果自动生成序号《Oracle编程艺术》学习笔记相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)