On 1/16/23 08:17, Adrian Klaver wrote: > 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);
Forget the above. Instead:
select testBinding01(1,2,3,4,5,6,7); ERROR: function testbinding01(integer, integer, integer, integer, integer, integer, integer) does not exist LINE 1: select testBinding01(1,2,3,4,5,6,7);
select testBinding01(1,2,3,4,5,6,'7');
testbinding01 --------------- ciao
The complete error shows what the function is receiving, all integers when it needs a text parameter for the last value.
>> * >> * >> * >> * >> * >> * >> 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 >> >> >> >