greenplum查询表结构java_Greenplum / Postgres 8功能动态结果集?

你有两个选择:使用set-returns函数返回“record”或返回你的自定义类型 .

第一种选择:

create table test (a int, b int, c int, d varchar, e varchar, f varchar);

insert into test select id, id*2, id*3, (id*4)::varchar, (id*4)::varchar, (id*4)::varchar from generate_series(1,10) id;

create or replace function test_func(column_list varchar[]) returns setof record as $BODY$

declare

r record;

begin

for r in execute 'select ' || array_to_string(column_list, ',') || ' from test' loop

return next r;

end loop;

return;

end;

$BODY$

language plpgsql

volatile;

select * from test_func(array['a','c','e']) as f(a int, c int, e varchar);

第二种选择:

create table test (a int, b int, c int, d varchar, e varchar, f varchar);

insert into test select id, id*2, id*3, (id*4)::varchar, (id*4)::varchar, (id*4)::varchar from generate_series(1,10) id;

create type testtype as (

a int,

c int,

e varchar

);

create or replace function test_func() returns setof testtype as $BODY$

declare

r testtype;

begin

for r in execute 'select a,c,e from test' loop

return next r;

end loop;

return;

end;

$BODY$

language plpgsql

volatile;

select * from test_func();

但我99%肯定你是在尝试做错事 . 在Greenplum中,函数执行的结果不能在连接条件中用作“表”,因为函数在主服务器上执行 . 您甚至无法从最后一个查询中创建一个表,因为这个限制从函数返回数据简而言之,这不是一种在Greenplum中处理数据的推荐方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值