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,

Reply via email to