Hello,
Is there a way to insert TIMESTAMP data or null
by 1 SQL?
$stmt = "INSERT INTO T_TAB1_T (C1, MEMO, T1) VALUES(?,?,?)";
This cannot insert null data.
$stmt = "INSERT INTO T_TAB1_T (C1, MEMO, T1) VALUES(?,?,TIMESTAMP(?))";
This is invalid param marker SQLSTATE=42610.
Regards,
H.T.
DROP TABLE T_TAB1_T;
CREATE TABLE T_TAB1_T (
C1 INTEGER NOT NULL,
MEMO VARCHAR(20),
T1 TIMESTAMP);
#!/usr/bin/perl
use strict;
use DBI;
my ($dbh, $sth, $stmt);
my ($seq, $seq_ok);
# connect
$dbh = DBI->connect("dbi:DB2:mydb", "ibm", "user",
{RaiseError => 1, AutoCommit => 1});
die "Error connect: $DBI::errstr" unless $dbh;
print "conn OK: $con\n";
# $stmt = "INSERT INTO T_TAB1_T (C1, MEMO, T1) VALUES(?,?,?)"; # error when
null
$stmt = "INSERT INTO T_TAB1_T (C1, MEMO, T1) VALUES(?,?,TIMESTAMP(?))"; #
invalid param karker SQLSTATE=42610
print "\$stmt: $stmt\n";
eval {
$sth = $dbh->prepare($stmt);
print "prepare ok\n";
};
$seq = 0;
while (<DATA>) {
++$seq;
chomp;
my ($C1, $MEMO, $T1) = split /,/;
print "$seq DATA: C1($C1), MEMO($MEMO), T1($T1)\n";
$sth->execute($C1, $MEMO, $T1);
print "$seq ok\n";
}
print "=== end ===\n";
eval {
$sth->finish();
$dbh->commit();
$dbh->disconnect();
};
__DATA__
1,insert data,2009-10-29 00:00:23.880004
1,insert null,