私は現在、SSIS 2008を使用して古いAdvantageデータベースサーバーからSQL 2005への移行を進めています。古いAdvantageデータベースの列の1つはMEMOタイプです。デフォルトでは、これはDT_TEXT列に変換されます。新しいデータベースでは、このような大規模なフィールドは必要ありませんが、VARCHAR(50)などに制限することができます。今、私はさらに一歩進み、空の文字列で、すべてのNULL値を置き換えたいSSIS ISNULLから空の文字列
(DT_STR,50,1252)[ColumnName]
:私は成功し、次の式でこれを変換する派生列変換を設定します。だから、明らかにこれはISNULL([ColumnName])?"":(DT_STR,50,1252)[ColumnName]
式を使用して十分に簡単に見えるだろうが、問題は、OLE DB先は、次のエラー
は、ユニコードと非ユニコード文字列の間の変換はできません。含まれていることです...
ISNULL式全体がデータ型をUnicode文字列[DT-WSTR]に変換します。私は、表現や部分ごとにさまざまなキャストを試みましたが、必要なものに合わせてデータ型を取得することはできません。
まず、DT_TEXT型を直接Unicodeに変換できますか?私が知ることから、キャストはそのようには機能しません。そうでない場合、NULL値が空の文字列に変換されるように式を取得する方法がありますか?
ありがとうございました!
私はこれを多くのキャスティングの試みで試しました。 (DT_STR、50,1252)(DT_STR、50,1252) "(DT_STR、501252)ColumnName ...まだ運がない。アイデア、と私は私の鋳造に何か間違っていない限り、それは動作しなくなった –