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


Reply via email to