Looks like an Oracle error, which is what I'd expect. I'm just
wondering if Oracle is supposed to support this or not ...

Here's the trace output (sorry for any wrapping):

DBI 1.30-nothread dispatch trace level set to 4
Note: perl is running without the recommended perl -w option
-> DBI->connect(DBI:Oracle:XXX, XXX, ****, HASH(0x199564))
-> DBI->install_driver(Oracle) for solaris perl=5.006001 pid=22975 ruid=103 euid=103
install_driver: DBD::Oracle version 1.12 loaded from /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
/DBD/Oracle.pm
New DBI::dr (for DBD::Oracle::dr, parent=, id=)
dbih_setup_handle(DBI::dr=HASH(0x2b06fc)=>DBI::dr=HASH(0x33b224), DBD::Oracle::dr, 0, Null!)
dbih_make_com(Null!, DBD::Oracle::dr, 88) thr#0
<- install_driver= DBI::dr=HASH(0x2b06fc)
-> connect for DBD::Oracle::dr (DBI::dr=HASH(0x2b06fc)~0x33b224 'catman' 'catuser' **** HASH(0x277a00))
New DBI::db (for DBD::Oracle::db, parent=DBI::dr=HASH(0x33b224), id=)
dbih_setup_handle(DBI::db=HASH(0x335a78)=>DBI::db=HASH(0x26b9ac), DBD::Oracle::db, 2b0450, Null!)
dbih_make_com(DBI::dr=HASH(0x33b224), DBD::Oracle::db, 116) thr#0
<- connect= DBI::db=HASH(0x335a78) at DBI.pm line 503 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'RaiseError' 1)
STORE DBI::db=HASH(0x26b9ac) 'RaiseError' => 1
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'PrintError' 1)
STORE DBI::db=HASH(0x26b9ac) 'PrintError' => 1
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'AutoCommit' 1)
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
<- connect= DBI::db=HASH(0x335a78)
-> do in DBD::_::db for DBD::Oracle::db (DBI::db=HASH(0x335a78)~0x26b9ac 'CREATE TABLE foo (col_1 VARCHAR
2(10), col_2 NUMBER)')
[steve@dopey:/home/steve/gsi/perl_test] $ cbindt
DBI 1.30-nothread dispatch trace level set to 4
Note: perl is running without the recommended perl -w option
-> DBI->connect(DBI:Oracle:catman, catuser, ****, HASH(0x199564))
-> DBI->install_driver(Oracle) for solaris perl=5.006001 pid=22978 ruid=103 euid=103
install_driver: DBD::Oracle version 1.12 loaded from /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
/DBD/Oracle.pm
New DBI::dr (for DBD::Oracle::dr, parent=, id=)
dbih_setup_handle(DBI::dr=HASH(0x2b06fc)=>DBI::dr=HASH(0x33b224), DBD::Oracle::dr, 0, Null!)
dbih_make_com(Null!, DBD::Oracle::dr, 88) thr#0
<- install_driver= DBI::dr=HASH(0x2b06fc)
-> connect for DBD::Oracle::dr (DBI::dr=HASH(0x2b06fc)~0x33b224 'catman' 'catuser' **** HASH(0x277a00))
New DBI::db (for DBD::Oracle::db, parent=DBI::dr=HASH(0x33b224), id=)
dbih_setup_handle(DBI::db=HASH(0x335a78)=>DBI::db=HASH(0x26b9ac), DBD::Oracle::db, 2b0450, Null!)
dbih_make_com(DBI::dr=HASH(0x33b224), DBD::Oracle::db, 116) thr#0
<- connect= DBI::db=HASH(0x335a78) at DBI.pm line 503 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'RaiseError' 1)
STORE DBI::db=HASH(0x26b9ac) 'RaiseError' => 1
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'PrintError' 1)
STORE DBI::db=HASH(0x26b9ac) 'PrintError' => 1
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'AutoCommit' 1)
<- STORE= 1 at DBI.pm line 545 via cbindt line 8
<- connect= DBI::db=HASH(0x335a78)
-> do in DBD::_::db for DBD::Oracle::db (DBI::db=HASH(0x335a78)~0x26b9ac 'CREATE TABLE foo (col_1 VARCHAR
2(10), col_2 NUMBER)')
1 -> prepare for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'CREATE TABLE foo (col_1 VARCHAR2(10), col_2
NUMBER)' undef)
New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x26b9ac), id=)
dbih_setup_handle(DBI::st=HASH(0x33b218)=>DBI::st=HASH(0x26b988), DBD::Oracle::st, 33b254, Null!)
dbih_make_com(DBI::db=HASH(0x26b9ac), DBD::Oracle::st, 208) thr#0
dbd_st_prepare'd sql CREATE
dbd_describe skipped for CREATE
1 <- prepare= DBI::st=HASH(0x33b218) at DBI.pm line 1212 via cbindt line 10
-> execute for DBD::Oracle::st (DBI::st=HASH(0x33b218)~0x26b988)
dbd_st_execute CREATE (out0, lob0)...
dbd_st_execute CREATE returned (SUCCESS, rpc0, fn1, out0)
<- execute= '0E0' at DBI.pm line 1213 via cbindt line 10
-> rows for DBD::Oracle::st (DBI::st=HASH(0x33b218)~0x26b988)
<- rows= 0 at DBI.pm line 1214 via cbindt line 10
<- do= '0E0' at cbindt line 10
<> DESTROY ignored for outer handle DBI::st=HASH(0x33b218) (inner DBI::st=HASH(0x26b988))
-> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x26b988)~INNER)
<- DESTROY= undef at cbindt line 11
dbih_clearcom 0x33b218 (com 0x372e08, type 3) done.

-> do for DBD::Oracle::db (DBI::db=HASH(0x335a78)~0x26b9ac 'INSERT INTO foo VALUES ('foo', 1)')
1 -> prepare for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER 'INSERT INTO foo VALUES ('foo', 1)' undef)
New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x26b9ac), id=)
dbih_setup_handle(DBI::st=HASH(0x33b2c0)=>DBI::st=HASH(0x26b988), DBD::Oracle::st, 33b2cc, Null!)
dbih_make_com(DBI::db=HASH(0x26b9ac), DBD::Oracle::st, 208) thr#0
dbd_st_prepare'd sql INSERT
dbd_describe skipped for INSERT
1 <- prepare= DBI::st=HASH(0x33b2c0) at DBI.pm line 1212 via cbindt line 11
-> execute for DBD::Oracle::st (DBI::st=HASH(0x33b2c0)~0x26b988)
dbd_st_execute INSERT (out0, lob0)...
dbd_st_execute INSERT returned (SUCCESS, rpc1, fn3, out0)
<- execute= 1 at DBI.pm line 1213 via cbindt line 11
-> rows for DBD::Oracle::st (DBI::st=HASH(0x33b2c0)~0x26b988)
<- rows= 1 at DBI.pm line 1214 via cbindt line 11
<- do= 1 at cbindt line 11
<> DESTROY ignored for outer handle DBI::st=HASH(0x33b2c0) (inner DBI::st=HASH(0x26b988))
-> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x26b988)~INNER)
<- DESTROY= undef at cbindt line 13
dbih_clearcom 0x33b2c0 (com 0x372e08, type 3) done.

-> prepare for DBD::Oracle::db (DBI::db=HASH(0x335a78)~0x26b9ac 'CREATE TABLE foo2 AS SELECT * FROM foo W
HERE col_2 = ?')
New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x26b9ac), id=)
dbih_setup_handle(DBI::st=HASH(0x26ba60)=>DBI::st=HASH(0x277a00), DBD::Oracle::st, 33b398, Null!)
dbih_make_com(DBI::db=HASH(0x26b9ac), DBD::Oracle::st, 208) thr#0
dbd_preparse scanned 1 distinct placeholders
dbd_st_prepare'd sql CREATE
dbd_describe skipped for CREATE
<- prepare= DBI::st=HASH(0x26ba60) at cbindt line 13
-> execute for DBD::Oracle::st (DBI::st=HASH(0x26ba60)~0x277a00 1)
bind :p1 <== 1 (type 0)
bind :p1 <== 1 (size 1/2/0, ptype 5, otype 1)
bind :p1 <== '1' (size 1/1, otype 1, indp 0, at_exec 1)
OCIErrorGet after OCIBindByName (er1:ok): -1, 1036: ORA-01036: illegal variable name/number

!! ERROR: 1036 'ORA-01036: illegal variable name/number (DBD ERROR: OCIBindByName)'
<- execute= undef at cbindt line 16
DBD::Oracle::st execute failed: ORA-01036: illegal variable name/number (DBD ERROR: OCIBindByName) at cbindt
line 16.
DBD::Oracle::st execute failed: ORA-01036: illegal variable name/number (DBD ERROR: OCIBindByName) at cbindt
line 16.
<> DESTROY ignored for outer handle DBI::db=HASH(0x335a78) (inner DBI::db=HASH(0x26b9ac))
<> DESTROY ignored for outer handle DBI::st=HASH(0x26ba60) (inner DBI::st=HASH(0x277a00))
-> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x277a00)~INNER)
<- DESTROY= undef
dbih_clearcom 0x26ba60 (com 0x372e08, type 3) done.

-> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x26b9ac)~INNER)
<- DESTROY= undef
dbih_clearcom 0x335a78 (com 0x2f8108, type 2) done.

-- DBI::END
-> disconnect_all for DBD::Oracle::dr (DBI::dr=HASH(0x2b06fc)~0x33b224)
<- disconnect_all= '' at DBI.pm line 565 via cbindt line 0
-> DESTROY in DBD::_::common for DBD::Oracle::dr (DBI::dr=HASH(0x33b224)~INNER)
<- DESTROY= undef during global destruction
dbih_clearcom 0x2b06fc (com 0x1b7508, type 1) done.

<> DESTROY for DBI::dr=HASH(0x2b06fc) ignored (inner handle gone)

Michael A Chase wrote:
On Tue, 22 Oct 2002 16:41:48 -0400 Steve Sapovits <[EMAIL PROTECTED]> wrote:


This does it if I substitute the 'XXX' values with our access params.

#!/usr/local/bin/perl

use strict;
use DBI;

my $dbh = DBI->connect('DBI:Oracle:XXX', 'XXX', 'XXX', {RaiseError =>
1});

$dbh->do("CREATE TABLE foo (col_1 VARCHAR2(10), col_2 NUMBER)");
$dbh->do("INSERT INTO foo VALUES ('foo', 1)");

my $sth =
 $dbh->prepare("CREATE TABLE foo2 AS SELECT * FROM foo WHERE col_2 =
?");

$sth->execute(1);

Try adding DBI->trace(4) to see what DBI thinks is happening.

--
Steve Sapovits    GSI Commerce, Inc.    http://www.gsicommerce.com
Email:   [EMAIL PROTECTED]
Work:    610-491-7087
Mobile:  610-574-7706
Pager:   877-239-4017

Reply via email to