|
Posted by Andy Hassall on 02/28/06 22:50
On Tue, 28 Feb 2006 14:37:33 +1100, Geoff Muldoon
<geoff.muldoon@trap.gmail.com> wrote:
>Cross-posted to comp.databases.oracle.misc and comp.lang.php ...
>
>Using PHP 4.3.11 on Linux and ADODB data abstraction library.
>
>Oracle client version is 10.1.
>
>Can successfully connect to remote database (version 9.2.0.6 on Linux
>NLS_LANG=AL32UTF8).
>
>When doing a simple select from a view:
>select RTS_LOAD from VW_R_PROJECTED_LOAD_OUTPUT
>I get the error message:
>ociexecute(): OCIStmtExecute: ORA-01858: a non-numeric character was found
>where a numeric was expected in adodb/461/drivers/adodb-oci8.inc.php on
>line 942
>1858: ORA-01858: a non-numeric character was found where a numeric was
>expected
>
>This happens even if I just select count(*) from the view.
>
>Using SQLPlus from the web server I don't have any problems at all
>selecting from the view, so it is definitely valid.
>
>If in my PHP script I directly query the underlying table that this Oracle
>view is based on, I have no problem.
>
>Any clues?
Try enabling debug on the ADOdb connection so you can see what it is actually
tring to execute (rather than what you expect it is executing) - just to make
sure.
My initial thought is NLS issues - implicit conversions somewhere in the view?
ORA-01858 is thrown by date conversions - don't think anything else throws
that, IIRC.
What's NLS_DATE_FORMAT set to?
What's the definition of the view?
When you queried the table directly, did you use *exactly* the same SQL as the
view definition?
--
Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
Navigation:
[Reply to this message]
|