On Sat, Jan 26, 2002 at 10:22:45PM -0800, Michael A Chase wrote:
> The trailing spaces going to $can make it 7 characters long. Add this after
> the split:
>
> foreach ( $pdate, $can, $siteletter, $rtime ) { s/\s+$//; }
I often do the split using
/\s*,\s*/
to soak up any surrounding space.
Tim.
> --
> Mac :})
> ** I normally forward private questions to the appropriate mail list. **
> Give a hobbit a fish and he eats fish for a day.
> Give a hobbit a ring and he eats fish for an age.
> ----- Original Message -----
> From: "Steve Few" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Saturday, January 26, 2002 19:58
> Subject: DBD::Oracle, INSERT - stumped
>
>
> > # 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.
>
>
>