use strict; use DBI; $ENV{'ORACLE_HOME'} = '/pkg/oracle/client10g'; my $sid = 'mysid'; my $user = 'joe'; my $pass = 'joespw'; my $dbh = DBI->connect( "dbi:Oracle:$sid", "$user", "$pass" ) || die( $DBI::errstr . "\n" ); $dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->{ora_check_sql} = 0; $dbh->{RowCacheSize} = 16; my $sql = qq{insert into reservation (machinename,reservationida,beginreserve,endreserve,description,reservationid) values (?,?,TO_TIMESTAMP(?,'DD/MON/YYYY HH:MI:SS'), TO_TIMESTAMP(?,'DD/MON/YYYY HH.MI.SS'),?,?)}; my $sth = $dbh->prepare($sql); $sth->bind_param(1, 'volcano'); $sth->bind_param(2, 666); $sth->bind_param(3, '12/MAR/2010 7:20:00'); $sth->bind_param(4, '12/MAR/2010 8:20:00'); $sth->bind_param(5, 'This machine tends to explode!'); $sth->bind_param(6, 666); #print "$sql\n"; $sth->execute; $sth->finish; $dbh->disconnect; #### SQL> Name Null? Type ----------------------------------------- -------- ---------------------------- RESERVERNAME VARCHAR2(200) RESERVATIONIDA NOT NULL NUMBER(38) BEGINRESERVE NOT NULL TIMESTAMP(6) ENDRESERVE TIMESTAMP(6) DESCRIPTION VARCHAR2(400) MACHINENAME NOT NULL VARCHAR2(20) RESERVATIONID NOT NULL CHAR(50) SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production #### CARRIE,123454,24-NOV-09 06.00.00.000000 PM,24-NOV-09 08.00.00.000000 PM,For Carrie test,pipe,123454 box1,56789,25-JUL-09 07.00.00.000000 AM,25-JUL-09 08.00.00.000000 AM,,ector,56789 #### DBD::Oracle::st execute failed: ORA-02291: integrity constraint (LRRS.RESERVATION_MACHINE_FK1) violated - parent key not found (DBD ERROR: OCIStmtExecute) [for Statement "insert into reservation (machinename,reservationida,beginreserve,endreserve,description,reservationid) values (?,?,TO_TIMESTAMP(?,'DD/MON/YYYY HH:MI:SS'),TO_TIMESTAMP(?,'DD/MON/YYYY HH.MI.SS'),?,?)" with ParamValues: :p1='volcano', :p2=666, :p3='12/MAR/2010 7:20:00', :p4='12/MAR/2010 8:20:00', :p5='This is explosive fun!', :p6=666] at ./liltest.pl line 23.