如何创建两个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个参数。请用示例代码更新我。
答案 0 :(得分:1)
每个函数只能有一个VARIADIC
,因为variadic包含 all 调用者传递的其他参数。
如果你的意思是调用者使用数组,那么使用variadic毫无意义,函数签名可能如下所示:
CREATE FUNCTION ip_source_test(text,text,date,date,int[], text[])
答案 1 :(得分:1)
正如错误消息告诉您:
VARIADIC参数必须是最后一个输入参数。
从逻辑上讲,函数只能将单VARIADIC
参数作为最后一个参数。在之前可以有其他(非VARIADIC)参数。 Quoting the manual here:
有效地,
VARIADIC
处或之外的所有实际论点 位置被收集到一维数组