我正在使用greenplum数据库。下面是我用来执行的函数定义。Greenplum问题:函数无法在段上执行,因为它访问关系
CREATE OR REPLACE FUNCTION testfunc(IN ID INT,淘汰率双精度)
退货双精度
$ BODY $
开始
SELECT COUNT(*)成率from ref_test_V
return;
end;
$ BODY $
语言plpgsql VOLATILE;
当我在选择列表中它扔我下面的错误调用这个函数
查询:选择1,testfunc(ID)从ref_test
错误: XX000:功能无法执行上段,因为它访问关系 “public.ref_test_v”(functions.c:155)(SEG25 slice1 ***** COM 1026 PID = 193132。)(cdbdisp.c:1326)
TIA
我明白了,但我想问的是我想要获取某个表的计数与基于函数的参数的过滤器值,并从选择列表中的其他表中调用该函数。如果我的语法错误,你可以用正确的语法指出我的意思。示例代码将帮助我。请注意,我不想实现为SQL。 TIA :) – jaga
您必须执行两条不同的SQL语句(一个使用count,另一个使用其他select)或在函数中使用变量来捕获记录数。 –
我按照您的说法尝试过,但问题仍然存在。你能提供任何可以帮助我的示例代码吗?我试图从函数中读取表的记录数,当我从另一个表的选择列表中调用此函数时,仍然会收到同样的问题。 TIA – jaga