Re: unable to call a function

From: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
To: giozh <giozh(at)yahoo(dot)it>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: unable to call a function
Date: 2013-07-04 17:50:01
Message-ID: 51D5B5C9.9020902@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 07/04/2013 10:14 AM, giozh wrote:
> something gone wrong the same...
>
> REATE OR REPLACE FUNCTION check_if_if_exist(id integer, table_name
> character, table_column character)
> RETURNS boolean AS
> $BODY$
>
> DECLARE res BOOLEAN;
>
> BEGIN
> EXECUTE 'SELECT EXISTS(SELECT * FROM'||table_name||
> 'WHERE'||table_column||'='||$1||')' INTO res USING id;
> RETURN res;
> END;
>
> select check_if_exist(10, 'prova', 'identificatore');
>
>
> RROR: function check_if_exist(integer, unknown, unknown) does not exist
> LINE 1: select check_if_exist(10, 'prova', 'identificatore');
> ^
> HINT: No function matches the given name and argument types. You might need
> to add explicit type casts.
>

Not sure if there is a cut and paste error involved but the function
should be something like:

CREATE OR REPLACE FUNCTION utility.check_if_if_exist(id integer,
table_name character, table_column character)
RETURNS boolean
LANGUAGE plpgsql
AS $BODY$

DECLARE res BOOLEAN;

BEGIN
EXECUTE 'SELECT EXISTS(SELECT * FROM '||table_name||
' WHERE '||table_column||'='||$1||')' INTO res USING id;
RETURN res;
END;
$BODY$;

I also put in some spaces to make the query work.

--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2013-07-04 18:14:53 Re: unable to call a function
Previous Message giozh 2013-07-04 17:14:58 Re: unable to call a function