VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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)