Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengambil DBMS_OUTPUT Oracle Dengan Cekap Menggunakan JDBC?

Bagaimanakah Saya Boleh Mengambil DBMS_OUTPUT Oracle Dengan Cekap Menggunakan JDBC?

Susan Sarandon
Lepaskan: 2024-12-31 09:25:14
asal
642 orang telah melayarinya

How Can I Efficiently Fetch Oracle's DBMS_OUTPUT Using JDBC?

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;
Salin selepas log masuk

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()));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan