【发布时间】:2013-10-16 23:59:18
【问题描述】:
如何创建两个 VARIADIC 参数。查看我的代码并纠正我。
CREATE OR REPLACE FUNCTION ip_source_test(text,text,date,date,VARIADIC int[],VARIADIC text[])
RETURNS TABLE (no_documents int, "Report By" text, "Report_By" text) AS
$$
BEGIN
IF 'Source Member' = $1 THEN
RETURN QUERY SELECT.....
ELSEIF 'company' = $1 THEN
RETURN QUERY SELECT.....
ELSE
RAISE NOTICE 'Not Worked';
END IF;
RETURN;
END;
$$ LANGUAGE plpgsql;
Error: VARIADIC parameter must be the last input parameter.
在 SQL 代码中,我应该使用 6 个参数。请用示例代码更新我。
【问题讨论】:
-
您希望如何调用此函数?能举个例子吗?
-
@RichardHuxton 我不确定,但我的例外是这样的
select * from ip_source_test('Source Member','week','2012-09-01','2013-09-01',VARIADIC '{128,270}'::int[],VARIADIC '{AJ,alexandra}'::text[]) -
从逻辑上讲,只能有一个可变参数,因为它引用了未知数量的附加参数。您可以以
ip_source_test(a,b,c,d,e,f,g,h,i,j)的形式调用该函数,其中a到d是前四个参数,其余的都集中在最后一个可变参数中。期望函数知道如何分配剩余的六个参数超出了它的心理能力。
标签: sql postgresql stored-procedures plpgsql