私の問題は次のとおりです。SQL Server 2008 (> 1GB) のバイナリ (イメージ) フィールドに巨大なファイルが格納される可能性があります。
通常の select ステートメントを使用してバイナリ全体を返すと、クエリが .NET プログラムに結果を返すのに 1 分以上かかり、クライアント アプリがタイムアウトします。私が探しているのは、返されるデータのサイズ (おそらく 300 MB) を制限する TSQL コードです。これにより、残りのチャンクを繰り返し処理し、タイムアウトを防ぐことができます。
これは、データが返された後の処理ではなく、SQL クエリで発生する必要があります。
MSがバイナリデータで動作すると言っているSubStringを試しましたが、返されるのは最大8000バイトだけです。最後に試したのは次のようなものです。
select substring(Package,0,300000000) 'package', ID from rplPackage where ID=0
--where package is the huge binary stored in a image field
クライアント アプリがあるため、データ ストリーミングも実際にはオプションではありません。
何か案は?