Sql-Server

SSIS 中的日期格式無效

  • January 28, 2016

我正在使用 BIDS 將數據從 Oracle 導出到 SQL 伺服器。

我正在使用 OLEDB 源和目標。

datetime在 ORACLE 中有大約 6 個欄位,其中兩個欄位沒有問題,而 4 個欄位給出無效的日期格式問題。

這四個欄位在ORACLEnulls的欄位中要麼有,要麼只有日期部分。datetime

有什麼解決辦法嗎?

我已經嘗試過各種數據轉換和插入空值選項。

您需要使用派生列轉換,並藉助表達式對原始列執行所需的轉換操作。

REPLACENULL(expression 1,expression 2)在派生列轉換中使用預設值替換 null 。

如果第一個表達式參數的值為 NULL,則REPLACENULL返回第二個表達式參數的值;否則,返回第一個表達式的值。

REPLACENULL(SHIPPED_DATE, "1900-01-01")

或與ISNULL

(DT_DBTIMESTAMP) (ISNULL(SHIPPED_DATE) ? “1900-01-01” : SHIPPED_DATE)

ISNULL([SHIPPED_DATE]) ? "UnknownDate" : [SHIPPED_DATE]

要處理日期部分,您可以使用Concatenate並將其轉換為有效的日期時間格式。

假設您將 01/07/2014 作為原始欄位值,然後將其設置為“01/07/2014 00:00:00”

OracleDateField + "00:00:00" 

如果您必須同時執行這兩個操作(檢查空值和處理日期部分),那麼最好使用腳本組件而不是派生列轉換。

引用自:https://dba.stackexchange.com/questions/69446