Maklumat pengecualian prosedur tersimpan MariaDB: Penghujung strim yang tidak dijangka, ralat membaca 0 bait
P粉004287665
2023-08-26 22:16:32
<p>Kami mempunyai prosedur tersimpan dalam MariaDB yang berfungsi dengan baik pada pelayan, tetapi apabila kami menjalankannya daripada klien menggunakan JDBC, kami boleh mendapatkan beberapa baris pertama, tetapi sentiasa mendapat ralat berikut selepas itu: </p> ;
<pre class="brush:php;toolbar:false;">penghujung strim yang tidak dijangka, baca 0 bait daripada 4 (soket ditutup oleh pelayan)</pre>
<p>Jadual<kod>loan_balance2</code> tidak terlalu besar, kira-kira 600K baris. Ini adalah prosedur tersimpan, adakah anda melihat apa-apa yang salah dengannya? Terima kasih! </p>
<pre class="brush:php;toolbar:false;">BUAT PROSEDUR `dapatkan_loan_balnces_sample`()
BERMULA
jatuhkan jadual jika wujud all_loan_ids;
jatuhkan jadual jika wujud random_loan_ids;
cipta jadual semua_pinjaman_id sebagai pilih pinjaman_id yang berbeza daripada pinjaman_baki2;
buat jadual random_loan_ids as select * from all_loan_ids order by RAND() had 50;
PILIH * DARI baki_pinjaman2
di mana loan_id in (pilih Loan_ID daripada random_loan_ids)
pesanan mengikut Loan_ID, baki_tarikh;
TAMAT</pre></p>
Biasanya net_write_timeout. Jika aplikasi anda tidak dapat membaca data pada kelajuan tulis pelayan, pelayan akan menutup soket. net_write_timeout ialah had masa, dalam beberapa saat, untuk pelayan cuba menghantar set hasil. Anda boleh meningkatkan had ini, iaitu pembolehubah sesi. Ini juga muncul dalam FAQ MariaDB JDBC.