MariaDB にはサーバー上で正常に動作するストアド プロシージャがありますが、JDBC を使用してクライアントから実行すると、最初の数行は取得できますが、その後は常に次のエラーが発生します。
;予期しないストリームの終わり、4 から 0 バイトを読み取りました (ソケットはサーバーによって閉じられました)
Tableloan_balances2
はそれほど大きくなく、約 600K 行です。これはストアド プロシージャですが、何か問題があると思いますか?ありがとう!
CREATE PROCEDURE `get_loan_balances_sample`() 始める all_loan_ids が存在する場合はテーブルを削除します。 存在する場合はテーブルを削除random_loan_ids; loan_balances2 から個別の loan_id を選択してテーブル all_loan_ids を作成します。 select * from all_loan_ids order by RAND()制限50としてテーブルrandom_loan_idsを作成します。 SELECT * FROM ローン残高2 ここで、loan_id は (random_loan_ids から Loan_ID を選択します) Loan_ID、balance_date で並べ替えます。 終了
通常はnet_write_timeout。アプリケーションがサーバーの書き込み速度でデータを読み取ることができない場合、サーバーはソケットを閉じます。 net_write_timeout は、サーバーが結果セットの送信を試行する時間制限 (秒単位) です。セッション変数であるこの制限を増やすことができます。これは、MariaDB JDBC のFAQにも記載されています。