PostgreSQL:错误:函数geta(整数、整数、未知)不存在
我正在创建一个动态查询生成函数,它在我的工作中帮助了我。PostgreSQL:错误:函数geta(整数、整数、未知)不存在,sql,function,postgresql,Sql,Function,Postgresql,我正在创建一个动态查询生成函数,它在我的工作中帮助了我。CREATE函数脚本已成功解析,但我无法执行它。执行函数时,它显示一个错误 我试了很多 请查看下面的代码 CREATE OR REPLACE FUNCTION "public"."GetA" (headcategoriesid int4,cdfid int4, colName text) RETURNS varchar AS $BODY$ DECLARE sql1 text := 'select string_agg(answe
CREATE函数
脚本已成功解析,但我无法执行它。执行函数时,它显示一个错误
我试了很多
请查看下面的代码
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;
Am使用Postgresql 9.2.4调用函数,如下所示:
SELECT "GetA"(7,96,'educationdetails'::text);
当您调用函数GetA而不使用“”(引号)时,它将被视为GetA(小写字母)。但是在您的代码中使用的是“”,因此它被创建为GetA。请包含函数的文本,而不是屏幕截图。很难阅读。另外,请包含错误消息的完整、准确文本(请再次复制并粘贴)。PostgreSQL版本-<代码>选择版本()/Post.QueXQL92.4,VisualC++构建1600, 32编译bit@CraigRinger请检查代码今天早上我创建了2-3个具有相同所有者的函数增益错误发生为错误:函数geta(整数,整数,文本)不存在您还需要将7和96强制转换为int4,或者您可以在过程中将它们作为整数。对于“SELECT GetA(7::int4,96::int4,'educationdetails'::text);”检查我的编辑,也会出现相同的错误。当您使用不带“”的GetA时,它将被视为GetA。但当您创建过程时,您使用的不是“”所以是GetA.Error:“控件到达函数末尾而不返回”