freetds 経由で MS SQL Server 10.50 に接続する単純な Perl スクリプトがあります。のような単一のクエリを実行しますSELECT name FROM table
。テーブルには約 15000 のレコードがあります。準備-実行(バインドなし)-フェッチ(whileループ内)を行います。準備、実行は OK に合格し、約 300 レコードを超えるフェッチ ループがハングし、最終的に「サーバーからの読み取りに失敗しました」というメッセージが表示されます。詳細に:
DBD::Sybase::st fetchrow_array failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (36)
Server ....., database ...
Message String: Read from the server failed
freetds.conf の「tds バージョン」は 4.2 に設定されています。7.0、7.1、または 7.2 を使用しようとすると、スクリプトは「実行」ステップを通過しません。
のように結果を制限するようにクエリを変更するとSELECT TOP 200 name FROM table
、問題なく終了します。
誰かがそのようなものを見たことがありますか?