PostgreSQL:错误:函数geta(整数,整数,未知)不存在

时间:2014-07-16 10:35:15

标签: sql function postgresql

我正在创建一个动态查询生成功能,帮助我完成工作。 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

1 个答案:

答案 0 :(得分:3)

调用功能如下:

SELECT "GetA"(7,96,'educationdetails'::text);

当你调用没有“”(引号)的函数GetA时,它会被认为是geta(小写字母)。但在您的代码中,您使用的是“”,因此它被创建为GetA。