2017-11-21 10 views
0

私はSQL ServerからExcelにデータをエクスポートするssisパッケージに取り組んでいます。非ユニコードからユニコードの文字列データ型に変換する際に問題が発生しました。そこで、派生したColumnタスクを作成し、SQL ServerテーブルでVarchar(40)型のUnicode文字列[DT_WSTR]に変換しました。それはこれらの列で機能しました。しかし、私もvarchar(max)型の記述カラムを持っていて、それをUnicodeテキストストリーム[DT_NTEXT]に変換しようとしました。うまく行かなかった。[Excel宛先[28]]エラー:列のバインディングを設定中にエラーが発生しました。バインディングのステータスは "DT_NTEXT"

+0

OLEDBのソースデータタイプは何ですか? –

+0

なぜ派生カラムが必要なのですか?単にデータ変換タスクを追加することができます –

+0

これは役に立ちます:https://stackoverflow.com/questions/26929438/ssis-access-to-sql-binding-error-the- binding-status-was-dt-ntext – Teo

答えて

0

ソースがSQL Serverが(あなたが言ったように)、あなたが直接あなたのSQLクエリに変換することができ

SELECT 
    CONVERT(NVARCHAR(40), 'att1') 
    ,CONVERT(NTEXT, 'att2') 

にあなたのテキストを変換NVARCHAR にあなたのVARCHARに変換

NTEXTある場合

より速いです。

P.S.これをテストするには(以前のOLE DB入力コンポーネントを削除またはリセットすることを忘れないでください) - >データ型を再評価することを余儀なくされます

役立ちますか?

0

varchar(1000)としてストアドプロシージャのDescription列をキャストするだけでした。このフィールドの最大長を確認したところ、約300文字でした。だから私はそれをvarchar(1000)と派生列のUnicode文字列[DT_WSTR]で作った。これは回避策でしたが、私はまだストアドプロシージャのデータ型を変換せずにssisパッケージで作成する方法を知りたがっています。

関連する問題