On 1/16/23 08:04, arons wrote:
Dear All,
I'm facing a general problem and I'm looking the best, fastest, way how to identify the problem and solve it.

As example assume we have a function like that:

CREATE OR REPLACE FUNCTION testBinding01 (

p_in01 bigint,

p_in02 bigint,

p_in03 bigint,

p_in04 bigint,

p_in05 bigint,

p_in06 bigint,

p_text7 text

) RETURNS text

LANGUAGE sql

AS $$

select 'ciao';

$$;



I can call the function in some of the variant below:

select testBinding01(1,2,3,4,5,6,7);

select testBinding01(p_in01 => 1,p_in02 => 2,p_in03 => 3,p_in04 => 4,p_in05 => 5,p_in06 => 6,p_text7 => 7);

select testBinding01(p_in01 => 1,p_in02 => 2,p_in03 => 3,p_in04 => 4,p_in05 => 5,p_in06 => 6,p_text9 => 'some txt');


All of the above, produce the error:

*No function matches the given name and argument types.*

In psql what does:

\df test*

return for the function name.

I'm going to guess it might be testBinding01, in other words mixed case.

Have you tried?:

select "testBinding01"(1,2,3,4,5,6,7);
*
*
*
*
*
*
My question is: how is the best way  to identify the problem?

Is a parameter name? is a parameter type? is the function name?

An especially in case is a parameter type how is the easy way to identify which parameter is causing the problem?

In case a function has a lot of parameters (and in even worst case has some overloading) going trough all parameters to check its type/name costs a lot of time.


Thanks for any help

Renzo




--
Adrian Klaver
adrian.kla...@aklaver.com



Reply via email to