# Folks, I'm stumped on my NT4.0, ASPerl 629 build, DBI,
# and correctly installed DBI, DBD-Oracle and DBI-Oracle8
# my trivial script is below --- see error message please.
# my little test data looks OK, but ?? stumped.
# thanks in advance ! (by the way, thanks to Michael for help this
week)
-- Steve Few, NC DENR
#!/usr/bin/perl -w
use strict;
use DBI;
use DBD::Oracle;
my $dbh = DBI->connect( 'dbi:Oracle:opn.ambient',
'Steve',
'Oracle',
{
RaiseError => 1,
AutoCommit => 0
}
) || die "Database connection not made:
$DBI::errstr";
my $sql = qq/
INSERT INTO dat
(PDATE,CAN,SITELETTER,RTIME)
VALUES
( ?, ?, ? , ? )
/;
my $sth = $dbh->prepare( $sql );
open( DAT, "d:/perl_resources/perlscripts/dbi/dat.prn" ) || die "Cannot
open product file: $!";
while ( <DAT> ) {
chomp;
print "$_\n";
my ($pdate, $can, $siteletter, $rtime) = split /,/;
$sth->execute($pdate,$can,$siteletter,$rtime);
}
close(DAT);
$dbh->disconnect;
#__DATA___;
# data looks like this, in flat file called dat.prn
#Nov122, aq-xxx , ML, 33
#Nov122, aq-xxx , ML, 33
#Nov12 , aq-xxx , DK, 22
# Oracle table looks like:
SQL> desc dat;
Name Null? Type
----------------------------------------- --------
------------------------
PDATE VARCHAR2(12)
CAN VARCHAR2(6)
SITELETTER VARCHAR2(4)
RTIME NUMBER
######## error message #############
D:\Perl_resources\PERLSCRIPTS\dbi>perl insert_example.pl
Nov122, aq-xxx , ML, 33
DBD::Oracle::st execute failed: ORA-01401: inserted value too large for
column (DBD ERROR: OCI
StmtExecute) at insert_example.pl line 26, <DAT> line 1.
Issuing rollback() for database handle being DESTROY'd without explicit
disconnect(), <DAT> li
ne 1.