web-dev-qa-db-ja.com

SSISで空白をNULLに変換する方法

ssisでExcelからデータを抽出しています。 Excel列の1つにblank値が含まれています。したがって、blankの値をnullに置き換える必要があります。そうしないと、パッケージが失敗します。何か提案はありますか?

25

また、ソースと宛先の両方の接続でNull値を保持するオプションをチェックすることもできます(利用可能な場合)

19
Thony

DataFlowでは、DerivedColumnコンポーネントを使用します。

列を置き換えて、式にこのコード行を入れます

ColumnName == "" ? NULL(DT_WSTR,50) : ColumnName

列が空の場合は必ずnullを返します

43
Farfarak

以下のようなものを試しましたか?

LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName] 
10
NG.

上記の問題の修正:::::

送信元と宛先は、null値を許可するオプションでチェックする必要があり、機能します。

2
sathish

日付列の文字列をNULLに置き換えたい類似のインスタンスがあり、次のコードを使用しました。

LEN(your_data)<2? NULL(DT_WSTR、50):your_data

この場合、文字列の長さは1のみでした。その後、データ変換変換を使用して、dt_dbtimestamp型に取得しました。

お役に立てば幸いです!

1
Chris

Derived Columnコンポーネントと条件式を使用する必要があります。これは条件付きステートメントであるため、ブール型の結果を作成するにはデータ型が同じである必要があります。

これを使ってみてください:

ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName
0
FreeTheLemmings