そのため、現在、SSIS2008を使用して古いAdvantageデータベースサーバーからSQL2005への移行に取り組んでいます。古いAdvantageデータベースの列の1つはMEMOタイプです。デフォルトでは、これはDT_TEXT列に変換されます。新しいデータベースでは、この大きなフィールドは必要ありませんが、VARCHAR(50)などに制限できます。次の式でこれを変換するために、派生列変換を正常に設定しました。
(DT_STR,50,1252)[ColumnName]
次に、さらに一歩進んで、すべてのNULL値を空の文字列に置き換えます。これは式を使用すると簡単に思えISNULL([ColumnName])?"":(DT_STR,50,1252)[ColumnName]
ますが、問題はOLEDB変換先に次のエラーが含まれていることです。
Unicode文字列と非Unicode文字列の間で変換できません...
したがって、明らかにISNULL式全体がデータ型をUnicode文字列[DT-WSTR]に変換します。式全体またはさまざまな部分にさまざまなキャストを試しましたが、必要なデータ型に一致するデータ型を取得できません。
まず、DT_TEXTタイプを直接ユニコードに変換することは可能ですか?私の知る限り、キャストはそのようには機能しません。そうでない場合、NULL値が空の文字列に変換されるように式を機能させる方法はありますか?
助けてくれてありがとう!