SSISを使用して新しいSQL Serverスキーマに移行しようとしているレガシーPostgreSQLデータベースソース(ODBC)があります。次のような警告が表示されます。
テーブルにLOB列があるため、「Row by Row」フェッチメソッドが適用されます。列の内容はLOBです
実は、どの列も実際にLOBである必要はありません。TEXT型はいくつかありますが、varchar(max)内に簡単に収まります。でも見知らぬ人は、しかし、最もすでにある VARCHARが、それはLOBであるかのように扱われているvarchar型以上のもの(128)らしい(事前のプロパティでは、データ型はDT_NTEXTです)。
selectステートメントですべての文字列型を適切な長さのvarcharに明示的にキャストし、ODBCソースでDT_NTEXTとして設定されているSQLコマンドを手動で実行しようとしました。
私はDBAではないので、本当に愚かなことをしている可能性は十分にあります。バッチフェッチできるように、型が最終的にvarcharになるようにするための最良の方法を知りたいのですが。何か案は?
必要に応じて、Visual Studio 2013内でSSIS-BI 2014を使用しています。
varchar(max)
は、SSISの目的のために、列データが最大のvarcharサイズ(約4000)に収まることを簡単に述べたと思います。実際には何にもキャストしていませんvarchar(max)
。ただし、念のためvarchar(4000)
、いくつかの列をにキャストしました。