On Fri, Oct 25, 2002 at 06:26:29AM +1000, Steve Baldwin wrote: > Thanks Chris, > > I have tried this on DBI 1.30 and DBD::Oracle 1.12, but see exactly the same > behaviour. I suspect it is a DBD::Oracle thing coz as far as I know, named > bind variables (as opposed to ?) is an Oracle thing. > > I have ended up doing the same as you did, but I hate ugly kludges, and was > hoping someone could enlighten me with "you just need to set the xxx > attribute on your database handle and it bypasses bind variable scanning".
Not implemented yet, but patched welcome :) (I _really_ hope to do some more DBD::Oracle work soon and could add in such an attribute fairly easily.) Tim. > If there's no such mechanism already, how about an enhancement ??? I suppose > I could get really brave and look in the .xs file, but before I do that, I > guess I'd like to hear some confirmation (one way or another) that that's the > only other solution. > > Thanks for the reply, > > Steve > > On Friday 25 October 2002 06:03, Sarnowski, Chris wrote: > > I ran into a similar problem with the '?' character with an earlier version > > of DBD:Oracle (possibly 1.03, maybe older) a couple of years ago. My (ugly) > > workaround was to invoke SQLPlus on a pipe and have it compile the package. > > > > > > open SQLSESSION, "|\$ORACLE_HOME/bin/sqlplus -S "; > > print SQLSESSION "${oracleUser}/${oraclePassword}\@$host\n"; > > print SQLSESSION "set scan off\n"; > > print SQLSESSION $packageText; > > print SQLSESSION "/\n"; > > print SQLSESSION "\nexit\n"; > > print SQLSESSION "\n"; > > close (SQLSESSION); > > > > Or you could upgrade your DBI and DBD. > > > > -Chris > > > > > -----Original Message----- > > > From: Steve Baldwin [mailto:stbaldwin@;multiservice.com] > > > Sent: Thursday, October 24, 2002 3:22 PM > > > To: [EMAIL PROTECTED] > > > Subject: Fwd: Creating wrapped PL/SQL packages using DBI > > > > > > > > > I didn't hear any response on this. Can anyone please help me ? > > > > > > Thanks, > > > > > > Steve > > > > > > ---------- Forwarded Message ---------- > > > > > > Subject: Creating wrapped PL/SQL packages using DBI > > > Date: Tue, 22 Oct 2002 11:25:24 +1000 > > > From: Steve Baldwin <[EMAIL PROTECTED]> > > > To: [EMAIL PROTECTED] > > > > > > I'm writing a perl script that reads the source of a PL/SQL > > > package from a > > > file, pre-processes it, optionally wraps it (using Oracle's > > > wrap utility), > > > and then executes it in the DB. > > > > > > If I don't wrap the file, everything works fine. However, if > > > I do wrap it, I > > > get the following error from the prepare method ... > > > > > > Can't mix placeholder styles (:foo/:1) at > > > /usr/local/lib/perl5/site_perl/5.6.0/i386-sco/DBD/Oracle.pm line 293 > > > > > > I somehow need DBD::Oracle to not scan the statement for bind > > > variables, coz > > > there aren't any. > > > > > > We're using DBI 1.14, DBD::Oracle 1.03, Oracle 7.3.3 (in case > > > that makes any > > > difference). > > > > > > Any clues ??? > > > > > > Steve > > > > > > P.S. > > > Here is a subset of the wrapped code ... > > > > > > create or replace package sb_test_p wrapped > > > 0 > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > abcd > > > 9 > > > 200f000 > > > 1 > > > 4 > > > 0 > > > 6 > > > 7 PACKAGE: > > > 9 SB_TEST_P: > > > 8 FUNCTION: > > > 2 F1: > > > 6 RETURN: > > > 6 NUMBER: > > > 0 > > > > > > 0 > > > 0 > > > 12 > > > 2 > > > 0 a0 1d 97 a0 8d a0 b4 > > > a0 2c 6a a0 :2 aa 59 58 17 > > > b5 > > > 12 > > > 2 > > > 0 3 7 8 10 14 21 25 > > > 26 2a 2e 32 36 38 3a 3d > > > 40 47 > > > 12 > > > 2 > > > 0 :2 1 9 2 b e 0 15 > > > > > > :2 2 5 :6 1 > > > > > > 12 > > > 2 > > > 0 :3 1 :3 2 0 :3 2 3 :6 1 > > > 49 > > > 2 > > > > > > :3 0 1 :4 0 2 :6 0 1 3 :3 0 > > > > > > 4 :a 0 a 2 5 :4 0 6 :3 0 > > > 7 > > > > > > ------------------------------------------------------- > > > > LEGAL NOTICE: > > Unless expressly stated otherwise, this message is confidential and may be > > privileged. It is intended for the addressee(s) only. Access to this e-mail > > by anyone else is unauthorized. If you are not an addressee, any disclosure > > or copying of the contents or any action taken (or not taken) in reliance > > on it is unauthorized and may be unlawful. If you are not an addressee, > > please inform the sender immediately. >