Welcome 微信登录

首页 / 数据库 / MySQL / Oracle table()函数用法

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)
表情: 姓名: 字数