Re: Problem with function parameters - Mailing list pgsql-general

From Richard Huxton
Subject Re: Problem with function parameters
Date
Msg-id 4570492A.4010700@archonet.com
Whole thread Raw
In response to Problem with function parameters  ("Alejandro Michelin Salomon \( Adinet \)" <alejmsg@adinet.com.uy>)
Responses RES: Problem with function parameters  ("Alejandro Michelin Salomon \( Adinet \)" <alejmsg@adinet.com.uy>)
List 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

pgsql-general by date:

Previous
From: "Thomas H."
Date:
Subject: Re: PostgreSQL doesn't accept connections when Windows
Next
From: "Anton Melser"
Date:
Subject: transfer just the data directories from linux to windows?