2011-06-21 25 views
0

昨日このSSISパッケージを使用していましたが、今ではこのエラーが発生せず、変更は一晩中発生しています。SSIS 2008:派生列から日付データ型への文字列の変換

私は基本的にyyyymmddのような文字列を取得しています。これを日付データ型に変換する必要があります。だから私は部分文字列を取り、yyyy/mm/ddを得て、それを日付型にキャストします。

パス:

フラット・ファイル・ソース---> Dervied列--->ここにすべての私のSSISパッケージのときの積分/挿入タスク

が表現されている:

(DT_DATE)(SUBSTRING([PolicyExpire],1,4) + "/" + SUBSTRING([PolicyExpire],5,6) + "/" + SUBSTRING([PolicyExpire],7,8)) 
(DT_DATE)(SUBSTRING([BirthDate],1,4) + "/" + SUBSTRING([BirthDate],5,6) + "/" + SUBSTRING([BirthDate],7,8)) 
(DT_DATE)(SUBSTRING([DLIssueDate],1,4) + "/" + SUBSTRING([DLIssueDate],5,6) + "/" + SUBSTRING([DLIssueDate],7,8)) 

エラーは次のとおりです。

Error: 0xC0049064 at Extract EXD data from Flatfile into YD db 1, Derived Column [3352]: An error occurred while attempting to perform a type cast.

Error: 0xC0209029 at Extract EXD data from Flatfile into YD db 1, Derived Column [3352]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "component "Derived Column" (3352)" failed because error code 0xC0049064 occurred, and the error row disposition on "input column "PolicyExpire" (3368)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.

Error: 0xC0047022 at Extract EXD data from Flatfile into YD db 1, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Derived Column" (3352) failed with error code 0xC0209029 while processing input "Derived Column Input" (3353). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

答えて

0

おそらく、あなたがインポートしようとしているデータは、今日は異なっています。昨日あなたのテキストファイルのデータソースに問題はありませんでしたか?

+0

を試してみてください。助けてくれてありがとう。 –

0

上記の変換ではNULLを考慮しません。いずれかのレコードに[PolicyExpire]にNULL値があるかどうかを確認します。

1

日付の月と日の部分文字列の部分文字列が正しくありません。

例えば、それは代わり

SUBSTRINGの

SUBSTRING([PolicyExpire]、5,2

([PolicyExpire]、5,6) にあるべきです月の値を取得します。

部分文字列関数の3番目のパラメータは、部分文字列の終わりの位置ではなく、見つかる部分文字列(この場合は2)のLENGTHです。

はいそのような場合は、この

(DT_DATE)(SUBSTRING([PolicyExpire],1,4) + "/" + SUBSTRING([PolicyExpire],5,2) + "/" + SUBSTRING([PolicyExpire],7,2)) 

(DT_DATE)(SUBSTRING([BirthDate],1,4) + "/" + SUBSTRING([BirthDate],5,2) + "/" + SUBSTRING([BirthDate],7,2)) 

(DT_DATE)(SUBSTRING([DLIssueDate],1,4) + "/" + SUBSTRING([DLIssueDate],5,2) + "/" + SUBSTRING([DLIssueDate],7,2)) 
関連する問題