Did you: use DBD::Oracle qw(:ora_types); ? You may also need to reference $clob (\$clob) rather than passing a copy, but I'm not sure on that.
HTH, jeff On Thu, 2002-06-20 at 11:36, David Totten wrote: > Hello, I am new to the list, and I have searched the archives for this > problem, and haven't seen an answer that works for me yet. > > My database is Oracle 9.2, my client is oracle 8.1.7. I am using > DBD::Oracle version 1.12. (The only reason why I am using the 8.1.7 > is because DBD didn't seem to want to compile with 9.2). > > The code I used was as follows: > > sub insertRecord { > my $foo = shift; > my $clob = { ora_type => ORA_CLOB, > ora_field => "xml" > }; > $main::dbh->{LongReadLen} = 2**20; > $main::dbh->{LongTruncOk} = 0; > $main::sth = $main::dbh->prepare("insert into $tablename (idnum, > xml) values (mysequence.nextval, ?)"); > $main::sth->bind_param(2, $foo, $clob); > > if (!$main::sth->execute) { > print "Error message was: $main::dbh->errstr\n"; > } > $main::sth->finish(); > return ""; > } > > When I did DBI->trace(2); I got the following output: > > DBI 1.25-nothread dispatch trace level set to 2 > -> DBI->connect(DBI:Oracle:fred2_neon, dave, ****, HASH(0x80fbb0c)) > -> DBI->install_driver(Oracle) for linux perl=5.006001 pid=21939 > ruid=501 euid=501 > install_driver: DBD::Oracle version 1.12 loaded from > /usr/lib/perl5/site_perl/5.6.1/i386-linux/DBD/Oracle.pm > <- install_driver= DBI::dr=HASH(0x81ade08) > -> connect for DBD::Oracle::dr (DBI::dr=HASH(0x81ade08)~0x824fdc8 > 'fred2_neon' 'dave' **** HASH(0x81897b0)) > <- connect= DBI::db=HASH(0x824fd98) at DBI.pm line 491 > -> STORE for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER > 'PrintError' 1) > <- STORE= 1 at DBI.pm line 533 > -> STORE for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER > 'AutoCommit' 1) > <- STORE= 1 at DBI.pm line 533 > -> STORE for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER > 'LongTruncOk' 0) > <- STORE= 1 at DBI.pm line 536 > <- connect= DBI::db=HASH(0x824fd98) > -> STORE for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER > 'LongReadLen' 1048576) > <- STORE= 1 at load.pl line 114 > -> STORE for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER > 'LongTruncOk' 0) > <- STORE= 1 at load.pl line 115 > -> prepare for DBD::Oracle::db (DBI::db=HASH(0x824fd98)~0x824fd08 > 'insert into dave (idnum, xml) values (mysequence.nextval, ?)') > dbd_preparse scanned 1 distinct placeholders > <- prepare= DBI::st=HASH(0x824fe88) at load.pl line 116 > -> bind_param for DBD::Oracle::st (DBI::st=HASH(0x824fe88)~0x824dd28 > 2 '<?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE sciserv PUBLIC "-//ScienceServer LLC//DTD SciServ 2.1//EN" > "http://192.246.204.91:1959/dtd/sciserv.dtd"> > <!-- > This data came from the following dataset: > /bb3/sdos_1998/OHL0103A > T1 LINE: 23911 > T2 LINE: 23913 > T3 LINE: 24039 > Supplemental SGML data came from: > /bb3/sdos_1998/OHL0103A/00100277/V0062I01//00000780.SGC > --> > <sciserv dtdver="2" d...' HASH(0x80fbb0c)) > bind :p2 <== '<?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE sciserv PUBLIC "-//ScienceServer LLC//DTD SciServ 2.1//EN" > "http://192.246.204.91:1959/dtd/sciserv.dtd"> > <!-- > This data came from the following dataset: > /bb3/sdos_1998/OHL0103A > T1 LINE: 23911 > T2 LINE: 23913 > T3 LINE: 24039 > Supplemental SGML data came from: > /bb3/sdos_1998/OHL0103A/00100277/V0062I01//00000780.SGC > --> > <sciserv dtdver="2" d...' (type 0, attribs: HASH(0x80fbb0c)) > Can't bind unknown placeholder ':p2' (2) at load.pl line 117. > -- DBI::END > -> disconnect_all for DBD::Oracle::dr > (DBI::dr=HASH(0x81ade08)~0x824fdc8) > <- disconnect_all= '' at DBI.pm line 553 > -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x824dd28)~INNER) > <- DESTROY= undef during global destruction > -> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x824fd08)~INNER) > <- DESTROY= undef during global destruction > -> DESTROY in DBD::_::common for DBD::Oracle::dr > (DBI::dr=HASH(0x824fdc8)~INNER) > <- DESTROY= undef during global destruction > > > Line 117 of load.pl is the bind_param() call. Could someone please help > me here? I can provide more information if needed. Just ask away. > > > Dave Totten