Hi,

I noticed a problem with Oracle8i on Linux 2.4.22 today and am
wondering if my grasp of variable binding (or lack thereof) is
the problem ---

I have a table with an char(8) datatype - a login name
I look up user passwords like so:

$query = qq |SELECT password FROM x WHERE y = ?|;
..
$sth->execute($z)

Now $z may be less than 8 chars in some instances, however,
variable binding with Postgres and MySQL succeeds.
In effect:
    SELECT password FROM x WHERE y = ?
is the same as saying
    SELECT password FROM x WHERE y = 'phil'
which works beautifully.

However...

In Oracle SELECT password FROM x WHERE y = 'phil' works fine
But SELECT password FROM x WHERE y = ?  fails..

One has to use a SQL placeholder:
SELECT password FROM x WHERE y LIKE ?
$sth->execute('phil%');

Anyone have any ideas how to force Oracle to play nice here?
Problem reproducible, scripts available.
DBI 1.40 and DBD-Oracle 1.14 on Oracle 8.1.6.1.0 on Linux 2.4.22
Perl 5.8.0

Thanks!

-----------------------------------------------------------------------
Thomas Good                                  e-mail: [EMAIL PROTECTED]
Programmer/Analyst                           phone:   (+1) 718.818.5528
Residential Services                         fax:     (+1) 718.818.5056
Behavioral Health Services, SVCMC-NY         mobile:  (+1) 347.524.5631

// Welches ist das groessere Verbrechen?
// Massenvernichtungswaffen besitzen oder sie erfinden?



Reply via email to