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.klaver@aklaver.com