table函数

最近更新时间: 2024-06-12 15:06:00

  • Oracle用法。

     create table t_table(f1 varchar2(36),f2 varchar2(36),f3 varchar2(36));
     insert into t_table values('tbase','tbase','tbase');
     insert into t_table values('Tbase','Tbase','Tbase');
     commit;
     create or replace type ty_row as object
     (
       col1 varchar2(36),
       col2 varchar2(36),
       col3 varchar2(36)
     );
     /
     create or replace type ty_table as table of ty_row;
     create or replace function f_table  return ty_table as
       v_ty_table ty_table;
     begin
       select ty_row(f1,f2,f3) bulk collect  into v_ty_table from t_table;
       return v_ty_table;
     end;
     /
     #调用,使用table返回一个表格
     select * from table(f_table());
  • TDSQL-PG改写。

     create table t_table(f1 varchar2(36),f2 varchar2(36),f3 varchar2(36));
     insert into t_table values('tbase','tbase','tbase');
     insert into t_table values('Tbase','Tbase','Tbase');
     create or replace function f_table  returns setof t_table as
       v_rec record;
     begin
       for v_rec in select * from t_table loop
           return next v_rec;
       end loop;
       return;
     end;
     /
     #调用
     select * from f_table();