postgresql - How return a Table freom a function? -


create function test_extract_text(tm_id1 int4, tm_subid1 int4, tm_id2 int4, tm_subid2 int4) returns table  $$ begin     return query select * dat_extract_text inner join dat_replace_text on dat_extract_text.id=dat_replace_text.subid ; end; $$ language plpgsql; 
error:  syntax error @ or near "as" line 3: $$ 

why? how fix it?

you need provide column definition list returns table clause, like described in manual here:

create function test_extract_text(    tm_id1 int4, tm_subid1 int4, tm_id2 int4, tm_subid2 int4) returns table (col1 type1, col2 type2, ...) $$ begin    return query    select *      dat_extract_text e    join   dat_replace_text r on e.id = r.subid; end $$ language plpgsql;

and while it's allowed use select *, should provide column list here, too. else, every change 1 of involved tables break function.


Comments