[英]DBD::Oracle insert sydate instead of null
我嘗試從perl將空值插入Oracle中的日期字段,但是最終沒有插入空值,而是插入sysdate。 當我從sqlplus中執行相同操作時,它將插入空值。
我的代碼(只是重要的部分)
use DBI;
use DBD::Oracle qw(ORA_RSET);
...
eval {
$sth = $dbh->prepare(q{
INSERT INTO MY_TABLE
(VAL1, VAL2, VAL3, ENTRY_DATE, PROCESSED_DATE)
VALUES (?,?,?,?,?)});
my $rv = $sth->execute($VAL1, $VAL2, $VAL3, undef, undef);
$insert_counter++;
};
if ( $@ ) {
$FILE_PROCESS_STATUS = FILE_INVALID;
logg("e", "$@");
}
if ( $FILE_PROCESS_STATUS = FILE_VALID ) {
$dbh->commit;
}
您可以使用DBI->trace
記錄操作並實際查看正在准備的語句。 請參閱此問題的答案。 這應該向您顯示是否創建了錯誤的SQL查詢。
但是,我願意打賭,問題並非您所想的那樣。 使用調試器來驗證您的這段代碼確實是導致問題的原因,或者創建一個簡單的示例腳本來測試這是否是真正的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.