我正在创建一个动态查询生成功能,帮助我完成工作。 CREATE FUNCTION
脚本成功解析但我无法执行它。执行该功能时,显示错误。
我已经尝试了很多。
请查看下面的代码。
CREATE OR REPLACE FUNCTION "public"."GetA" (headcategoriesid int4,cdfid int4,
colName text)
RETURNS varchar AS
$BODY$
DECLARE
sql1 text := 'select string_agg(answer, '','') as HeadName from
' || $3 || 'where cdfid = ' || $2 || ' and headcategoriesid = '|| $1;
BEGIN
-- RETURN QUERY
Execute sql1;
-- 'select string_agg(answer, '','') as HeadName from ' || $3 ||
'where cdfid = ' || $2 || ' and headcategoriesid = '|| $1;
-- RETURN QUERY EXECUTE format(
-- 'select string_agg(answer, '','') as HeadName from %I WHERE
cdfid = %L and headcategoriesid = %L', colName, 7, 96
-- );
END
$BODY$
LANGUAGE plpgsql;
使用 Postgresql 9.2.4
答案 0 :(得分:3)
调用功能如下:
SELECT "GetA"(7,96,'educationdetails'::text);
当你调用没有“”(引号)的函数GetA时,它会被认为是geta(小写字母)。但在您的代码中,您使用的是“”,因此它被创建为GetA。