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:“控件到达函数末尾而不返回”