Re: Problem with function parameters

From: Richard Huxton <dev(at)archonet(dot)com>
To: "Alejandro Michelin Salomon ( Adinet )" <alejmsg(at)adinet(dot)com(dot)uy>
Cc: Pgsql-General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Problem with function parameters
Date: 2006-12-01 15:24:26
Message-ID: 4570492A.4010700@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Alejandro Michelin Salomon ( Adinet ) wrote:
> Hi :
>
> I have installed Pg 8.08
>
> I create this function :
> CREATE OR REPLACE FUNCTION CALCULO_VALOR_LIQUIDO_HELPDESK( nTipoDesconto
> SMALLINT,
> nTipoComissao
> SMALLINT,

> When i test this function, i call the function with this parameters :
>
> SELECT CALCULO_VALOR_LIQUIDO_HELPDESK( 0, 1, 10, 10, 1000 );
>
> This is the error that happens:
>
> ERROR: function calculo_valor_liquido_helpdesk(integer, integer, integer,
> integer, integer) does not exist
> SQL state: 42883
> Hint: No function matches the given name and argument types. You may need to
> add explicit type casts.
>
> I dont now what the two first parameters are see as integer. When 0 and 1
> are true smallint values.

"0" and "1" end up as literal integers, since you've not told it
otherwise. You have two options:
1. Cast your parameters when you call the function
select calculo_valor_...(0::smallint, 1::smallint, ...)
2. Define your function to take integers

I'd choose #2, you're not gaining anything by having smallint parameters.

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alejandro Michelin Salomon ( Adinet ) 2006-12-01 16:05:49 Problem with function parameters
Previous Message Thomas H. 2006-12-01 15:10:39 Re: PostgreSQL doesn't accept connections when Windows