SSISパッケージがあります。ここには4つの異なるデータフロータスクがあります。各データフロータスク(例えば、A、B、C、D)は同じ導出列式を持ち、異なるoledbソースからの結果を同じoledb宛先に追加します。式のSSIS派生列のエラー
データフロータスクCだけでは次のようなエラーが発生し、A、B、Dには問題はありませんが、すべて同じ派生列式を持ちます。
派生列式:Cのデータフロータスクに示す
(DT_NUMERIC,18,2)SUBSTRING([Work item /Submission no#],4,2) == (DT_NUMERIC,18,2)SUBSTRING([Work item /Submission no#],4,2) ? LEFT([Work item /Submission no#],15) : LEFT([Work item /Submission no#],16)
SSISエラー:すべての
[Derived Column [100]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Derived Column" failed because error code 0xC0049064 occurred, and the error row disposition on "Derived Column.Outputs[Derived Column Output].Columns[SubmissionCommon]" 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.
一部の行で 'SUBSTRING([Work item/Submission no#]、4,2)'を(DT_NUMERIC、18,2)に解析できないと思われます。 – Hadi
エラーが発生しますかA、B、およびDが無効の間にデータフロータスクCを実行するとしますか?また、Cで使用されるoledbソースからWork項目とSubmission No#の値をすべて確認しましたか? NULL値を指定すると、式で使用される除算に問題が発生する可能性があります。このoledbソースのWork項目とSubmission No#フィールドに対してISNUMERIC関数を持つSQLクエリを実行すると、その答えが得られます。 – user3662215
いいえ、A、B、C、Dはすべて異なるデータフロータスクで実行されていますが、同じSSISパッケージ内で実行されています。Cでは30000行のうち27494行のエラーが発生します。 – katy89