http://www.perlmonks.org?node_id=1049556


in reply to Re: Perl Script failing after oracle 10G driver upgrade
in thread Perl Script failing after oracle 10G driver upgrade

Thanks for reply,

More details about issue:

I have a perl script that was working fine until I upgraded my Oracle client 9i to 10g (instant client). I'm inserting data into an Oracle database via DBD-ODBC.

We found this error from logs:

Monday, August 12, 2013 4:33 PM Product Group ID = 4 Count = 2Last extract to date: 080108131644, extract to date : 090130 +095622 , Current run id: 55 Errstr = Exception Found - Error_ID 12

While updating the records in to below table failing the script.

we are assuming this issue is some thing related to date format and changed the code at script level with diffrent format of dates ,but its not much help full resolve this issue.

UPDATE TEST_CONTROL_TABLE SET PN_Date = to_date(?,'yyyymmddhh24miss'), + E_From_Date = to_date(?,'yyyymmddhh24miss'), E_To_Date = to_date(?,' +yyyymmddhh24miss'), E_MN = ?, E_Sts = ?, D_R_ID = ?, D_Mode = ?, D_St +ts = ?, H_ID = ?, keep_M = ?, Hkeep_Sts = ?, Pr_Stt = ?, E_From_Qtes += ?, L_To_S_Qte = ?, Unque_Po_Count = ?, Unque_C_Count = ?, Unque_End +or_Count = ?, Pol_F_Record_Count = ?, Cl_File_Re_Count = ?, End_Rec_C +ount = ? WHERE R_ID = ?}; my $sth8 = $dbh->prepare( $sql8 ) or error(17)

Current using ORACLE NLS date format setting is rrmmddhh24miss

with out changing NLS setting is there any options to resolve this issue?

Script connection setting information:

my $driver = "ODBC"; my $server = "localhost"; my $database = "";

Please let me know,if you require any more details.

Replies are listed 'Best First'.
Re^3: Perl Script failing after oracle 10G driver upgrade
by poj (Abbot) on Aug 15, 2013 at 12:15 UTC

    In the original post you had the error on this record

    Last extract to date: 20130211035545

    and now you have an error on this record

    Last extract to date: 080108131644

    so it looks like you have a mixture of 2 digit and 4 digit years in your input data. If this is the case then try the SQL with to_date(?,'rrrrmmddhh24miss') as the rrrr accepts both formats.

    poj

      We tried with diffrent date format to resolve this isse,but its not help full.

      Existing date format yyyymmddhh24miss:

      Tried with diffrent date format rrmmddhh24miss(Similar like NLS setting)