ORA-06550 and PLS-00306 when ExecProc function
Posted: Thu 05 Jun 2008 06:22
Dear Sir and Madam,
I am not sure but believe that after the last update something is different
.
Well, in my application I call some functions in the following style:
result := OraSession.ExecProc('whatever_function', [val1, val2]);
That worked well till the last days. Now I get the following error message.
ORA-06550:_line 2, column 3:
PLS-00306:_wrong number or types of arguments in call to 'WHATEVER_FUNCTION'
ORA-06550:_line 2, column 3:
PL/SQL:_Statement ignored
From my point of view
neither the number nor the type of the arguments are wrong when calling ExecProc - so I come up with the theory that ExecProc is doing something different after tha last update. I even did some more or less wired castings to prove that there shouldn't be any problem with number or type of the arguments. I am currently using 6.50.0.34 of ODAC.
When I do the whole thing via StoredProcedure everything works well:
OraSPwhatever.ParamByName('valA').Value := val1;
OraSPwhatever.ParamByName('valB').Value := val2;
OraSPwhatever.Execute;
result := OraSPwhatever.ParamByName('RESULT').Value;
I would like to use the ExecProc-way because it is more convinient to me as I do such calls alot in my application and the ExecProc-way is less to write.
Could you please explain me what happend and why it is that way and maybe if there is a workarround that let me stay with ExecProc.
Thanks in Advance
Michael
I am not sure but believe that after the last update something is different
Well, in my application I call some functions in the following style:
result := OraSession.ExecProc('whatever_function', [val1, val2]);
That worked well till the last days. Now I get the following error message.
ORA-06550:_line 2, column 3:
PLS-00306:_wrong number or types of arguments in call to 'WHATEVER_FUNCTION'
ORA-06550:_line 2, column 3:
PL/SQL:_Statement ignored
From my point of view
When I do the whole thing via StoredProcedure everything works well:
OraSPwhatever.ParamByName('valA').Value := val1;
OraSPwhatever.ParamByName('valB').Value := val2;
OraSPwhatever.Execute;
result := OraSPwhatever.ParamByName('RESULT').Value;
I would like to use the ExecProc-way because it is more convinient to me as I do such calls alot in my application and the ExecProc-way is less to write.
Could you please explain me what happend and why it is that way and maybe if there is a workarround that let me stay with ExecProc.
Thanks in Advance
Michael