Thread: Problem with function

Problem with function

From
qradius@qnet.com.pe
Date:
Hi!
Please ; i have a function denfined as:

create function nr_renewLease(varchar(15),interval)
returns integer as '
DECLARE
 local_address ALIAS FOR $1;
 lease_duration ALIAS FOR $2;
BEGIN
  update nr_lease set expires=now()+lease_duration where
  address=local_address;
END;
return 1;
'
language 'plpgsql';

when I calle the functions as:

select nr_renewLease('192.168.100.1','20 seconds');

I get the follow error:

ERROR:  Function 'nr_renewlease()' does not exist
    Unable to identify a function that satisfies the given
argument types
    You may need to add explicit typecasts

But I don't know why, since I can see sintaxis of my function
is fine, and the passed arguments are fine, Can you help me,
if exists some detail I am not seeing?

I can see that this error message also appears when a function
that doesn't exists is called, but my function exists!

Thank you.

Regards.

Ernesto Freyre


---------------------------------------------
Este mensaje fue enviado a trav�s de Qnet
http://www.qnet.com.pe



Re: Problem with function

From
Stephan Szabo
Date:
On Thu, 8 Nov 2001 qradius@qnet.com.pe wrote:

> Hi!
> Please ; i have a function denfined as:
>
> create function nr_renewLease(varchar(15),interval)
> returns integer as '
> DECLARE
>  local_address ALIAS FOR $1;
>  lease_duration ALIAS FOR $2;
> BEGIN
>   update nr_lease set expires=now()+lease_duration where
>   address=local_address;
> END;
> return 1;
> '
> language 'plpgsql';
>
> when I calle the functions as:
>
> select nr_renewLease('192.168.100.1','20 seconds');
>
> I get the follow error:
>
> ERROR:  Function 'nr_renewlease()' does not exist
>     Unable to identify a function that satisfies the given
> argument types
>     You may need to add explicit typecasts

Is it possible that you created it as "nr_renewLease" or used
an interface that did so?  If so, you need to double quote
the name on uses as well.  Also, when I tried it, the end and
return 1 needed to be swapped.