Eugene Krivdyuk wrote:
2008/6/10 Martin Evans <[EMAIL PROTECTED]>:
I believe this is the right error for what you have done because the only
way for oracle to know which function you meant is if the bound parameters
match the right function. Since you are binding dates as varchars and oracle
can convert varchars to various types how can it know which function you
meant?

Error occurs even when I define type for bind_param explicitly, e.g.:

 $sth->bind_param(':i_param2',  $sDateStart, { ora_type => ORA_VARCHAR2 });
 $sth->bind_param(':i_param3',  $sDateEnd,  { ora_type => ORA_VARCHAR2 });


Yes, I saw that but varchars can be converted to dates and oracle supports implicit conversion of varchars to dates so it is still not clear to Oracle which function to use. I suspect if you had parameter differences in the functions where an implicit conversion could not be performed then Oracle would happily match up your call to the right function.

If it isn't that, then it may depend on what is bound for the
date/varchar parameters e.g., if they are NULL then Oracle won't know which
function you meant

They are always not NULLs in my case.

I only mentioned that in case as I'd seen that before and your example did not rule it out.

Anyway you have a sensible workaround now with the advantage that anyone looking at the call can also be sure which version of the function you are using.

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to