0

DT_TEXTSQL 2008 データベースの列の最初の 120 文字を抽出しようとしています。私の SQL ステートメントは正常に動作し、SQL Management Studio で目的の結果を返します。

ただし、OLEDB ソース コンポーネントを使用して SSIS でクエリを実行すると、すべて null が返されます。サーバー、データベース、およびテーブルがまったく同じです。同じ SQL ステートメントを OLEDB ソースにカット アンド ペーストします。外観は次のとおりです。

SELECT SUBSTRING(ColA, 1, 120) AS MyCol from MyTable

ColADT_TEXTデータ型です。

SSIS の OLEDB 接続を介して実行されたときに、このステートメントがデータを返さない理由を知っている人はいますか?

ありがとう!

4

1 に答える 1

0

データを varchar にキャストしてみましたか?

SELECT CAST(SUBSTRING(ColA, 1, 120) as varchar(120)) AS MyCol from MyTable

これにより、oledb コンポーネントが列に関するメタデータを強制的に変更し、それ以降はDT_STR機能するはずです。そもそもソース コンポーネントが正しく処理されなかったのは奇妙に思えますが、テキスト データ型を扱ったことはありません。

于 2011-11-18T13:13:16.750 に答える