RE: datatype error



Many thanks to all who provided assistance.

The problem was the date format I was using. The system default was "YYYY-Mon-DD", which didn't provide the time info I needed. My options were:

1. To specify a format for each transaction using the to_date function.
2. To set the default format for my session using the "alter session set NLS_TIME_FORMAT" statement.

I chose the latter, added one line of code after I made the DB connection (applied to my DBI object)

$dbh = DBI->connect( .....);
$dbh->do('ALTER SESSION SET NLS_TIME_FORMAT = "YYYYDDMM HH24:MI:SS"');
....

Then instead of using the SQL_DATETIME type, I used the SQL_VARCHAR:

from:
$sth->bind_param( 3, @$_->[2], SQL_DATETIME );

to:
$sth->bind_param( 3, @$_->[2], SQL_VARCHAR );

Thanks again,
Craig



Subject: RE: datatype error> Date: Fri, 27 Jul 2007 08:06:10 -0500> From: PCAPACIO@xxxxxxxxx> To: ucantspamthis@xxxxxxxxxxx> CC: dbi-users@xxxxxxxx> > >-----Original Message-----> >From: Craig Metzer [mailto:ucantspamthis@xxxxxxxxxxx] > >Sent: Thursday, July 26, 2007 5:36 PM> >I'm getting an error trying to run an insert action due to the DATE > >or DATETIME datatype. I couldn't find anything on it, and was> wondering> >if anyone could point me in the right direction -- Thanks> >I'm trying to run an insert ... the date value is giving me errors.> Here's the code:> > my $sql = qq{ INSERT INTO perfdata VALUES ( ?, ?, ?, ?, ?, ? ) };> > my $sth = $dbh->prepare( $sql );> > for ( @record ) {> > eval {> > $sth->bind_param( 1, @$_->[0], SQL_VARCHAR );> > $sth->bind_param( 2, @$_->[1], SQL_VARCHAR );> > $sth->bind_param( 3, @$_->[2], SQL_DATETIME );> > $sth->bind_param( 4, @$_->[3], SQL_INTEGER );> > $sth->bind_param( 5, @$_->[4], SQL_CHAR );> > $sth->bind_param( 6, @$_->[5], SQL_VARCHAR );> > $sth->execute();> > $dbh->commit();> > };> > if ( $@ ) {> > warn "Database error: $DBI::errstr\n";> > $dbh->rollback(); #just die if rollback is failing> > }> > }> > $sth->finish();> > Perhaps....I'm no expert...you need to use the TO_Date function> and specify the format your string is in.> I have code from an insert process that used the following SQL> statement, > unfortunately the input data file no longer exists so I can't look at> what the format was. > HTH, Paula> (watch out for text wrapping of code by mail client)> > sub prepareInsStmt { #set up and prepare the SQL statement> my $seConn = $_[0];> my $stmt1 = 'INSERT INTO SEWEB.logfile ';> my $stmt2 = '(userid, update_ts, category) ';> my $stmt3 = "values (?,TO_Date(?,'YYYY-MM-DD HH24:MI:SS'),?)";> my $stmt = $stmt1..$stmt2.$stmt3;> my $sth = $seConn->prepare( $stmt ) or> processError("PrepareFailed","$stmt",$seConn); > printIt("Insert statement prepared:\n\t$stmt");> return $sth; #return the prepared statement handle> }> This subroutine was called via:> my $isth = prepareInsStmt($seConn); #prepare INSERT w/ placeholder> > And the inserts processed via:> while (<HIST>) {> chomp;> my ($uid,$datets,$category,$desc) = split /,/,$_;> $isth->execute($uid,$datets,$category) > or processError("ExecuteFailed",$isth,$seConn);> }
_________________________________________________________________
Local listings, incredible imagery, and driving directions - all in one place! Find it!
http://maps.live.com/?wip=69&FORM=MGAC01

Relevant Pages

  • Re: Auto generated Table of Contents displays page numbers incorrectly
    ... How did you specify the i, ii, iii, ... ... If you chose the format in the Page Number Format dialog box it should ... "Pat" wrote in message ...
    (microsoft.public.word.numbering)
  • Re: Need performance help
    ... Monitor utility output to Comma Separated Value format files. ... At least one CSV file must be specified. ... the matching parameters from all the files are shown on the same chart. ... specify the commands on the command line. ...
    (comp.os.vms)
  • Re: Fixed-Point and Scientific Notation
    ... :>determine both the format and the length, ... In which cases would it not be resolvable via context? ... :>It is therefore necessary that the capability to specify formats and lengths ... I very rarely bother responding to challenge/response systems, ...
    (bit.listserv.ibm-main)
  • RE: HOW DO I REMOVE :
    ... In the Header and Footer boxes, specify the information to be printed by ... Date in short format (as specified by Regional and Language Options in ...
    (microsoft.public.windowsxp.print_fax)
  • RE: HOW DO I REMOVE :
    ... In the Header and Footer boxes, specify the information to be printed by ... Date in short format (as specified by Regional and Language Options in ...
    (microsoft.public.windowsxp.print_fax)