簡體   English   中英

DBD :: Oracle插入sydate而不是null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM