Mengambil DBMS_OUTPUT Menggunakan JDBC
Apabila mengendalikan prosedur atau fungsi pangkalan data menggunakan Java dan JDBC, mungkin terdapat keperluan untuk menangkap output tanpa membuat tambahan objek atau mengubah skema pangkalan data. Satu pendekatan melibatkan penggunaan pakej DBMS_OUTPUT Oracle.
Untuk mendapatkan semula output daripada DBMS_OUTPUT.get_lines, panggilan JDBC boleh dibuat kepada prosedur tersimpan seperti di bawah, yang merangkumi langkah-langkah yang diperlukan untuk mendayakan penimbalan, talian keluaran, mendapatkan semula garisan, dan melumpuhkan penimbalan:
declare num integer := 1000; begin dbms_output.enable(); dbms_output.put_line('abc'); dbms_output.put_line('hello'); dbms_output.put_line('so cool'); dbms_output.get_lines(?, num); dbms_output.disable(); end;
Dalam kod JDBC, prosedur ini boleh dipanggil menggunakan CallableStatement dan kaedah getArray untuk mengambil output sebagai tatasusunan:
CallableStatement call = c.prepareCall(procedureQuery); call.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY"); call.execute(); Array array = call.getArray(1); System.out.println(Arrays.asList((Object[]) array.getArray()));
Satu lagi kelebihan menggunakan DBMS_OUTPUT .get_lines ialah keupayaan pemindahan pukalnya, dengan ketara mengurangkan overhed DBMS_OUTPUT.get_line individu panggilan. Penandaarasan telah menunjukkan bahawa pendekatan pukal boleh sehingga 30 kali lebih pantas daripada pendekatan baris individu apabila dilaksanakan daripada JDBC.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil DBMS_OUTPUT Oracle Dengan Cekap Menggunakan JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!