TABLE
功能描述
table表函数用于查询函数返回的结果集,并将结果集转换为表的形式(就如同查询普通表一样查询返回的结果集)。
表函数目前可以接受的输入参数有:查询语、游标、嵌套表等集合类型。
语法格式
SELECT * FROM table(arg);
参数说明
arg
结果集。
示例
示例1:
1、创建测试表并插入数据。
create table testtable(id int);
insert into testtable values(123),(1234);
2、使用表函数查询结果。
SELECT * FROM table(testtable);
返回结果为:
id
------
123
1234
(2 rows)
示例2: 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;
begin
for i in 1 .. nvl(n,100) loop
v_test(i) := (i,sysdate,'mc'||i);
end loop;
return v_test;
end;
/
select * from table(f_test_array(10));
返回结果为:
id | rq | mc
----+---------------------+------
1 | 2022-08-19 12:21:45 | mc1
2 | 2022-08-19 12:21:45 | mc2
3 | 2022-08-19 12:21:45 | mc3
4 | 2022-08-19 12:21:45 | mc4
5 | 2022-08-19 12:21:45 | mc5
6 | 2022-08-19 12:21:45 | mc6
7 | 2022-08-19 12:21:45 | mc7
8 | 2022-08-19 12:21:45 | mc8
9 | 2022-08-19 12:21:45 | mc9
10 | 2022-08-19 12:21:45 | mc10
(10 rows)