| 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: | Whole Thread | Raw Message | 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
| 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 |