Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil DBMS_OUTPUT.GET_LINES Oracle dalam JDBC Tanpa Membuat Objek Pangkalan Data?
Mengambil DBMS_OUTPUT.GET_LINES dalam JDBC Tanpa Membuat Objek Pangkalan Data
Dalam Oracle, DBMS_OUTPUT.GET_LINES menyediakan mekanisme untuk mendapatkan semula prosedur atau output daripada disimpan operasi pangkalan data lain. Walaupun ada kemungkinan untuk mencipta objek tambahan dalam pangkalan data untuk memudahkan proses ini, adalah wajar untuk mengelakkan overhed ini. Artikel ini meneroka cara untuk mendapatkan output DBMS_OUTPUT.GET_LINES dalam Java menggunakan JDBC tanpa menggunakan entiti pangkalan data luaran.
Mendayakan Penimbalan Output
Langkah pertama ialah mendayakan penimbalan output menggunakan DBMS_OUTPUT.ENABLE(). Ini membolehkan untuk menangkap output pelayan semasa operasi pangkalan data dilaksanakan.
Menangkap Output
Untuk menangkap output, DBMS_OUTPUT.GET_LINES() digunakan. Prosedur ini mendapatkan semula bilangan baris output tertentu ke dalam kursor SQL. Adalah penting untuk mendaftarkan parameter output sebagai tatasusunan jenis "DBMSOUTPUT_LINESARRAY" untuk menerima keputusan.
Mendapatkan Keluaran
DBMSOUTPUT_LINESARRAY mengandungi tatasusunan objek yang mewakili output garisan. Untuk mendapatkan output sebenar, tatasusunan diambil menggunakan kaedah getArray() JDBC.
Contoh Kod
try (CallableStatement call = c.prepareCall( //这段代码用于设置enable output buffering,在DBMS_OUTPUT.PUT_LINE()与DBMS_OUTPUT.GET_LINES()之间执行 "declare num integer := 1000; begin dbms_output.enable(); ..." )) { // ... remaining code to capture and print output }
JOOQ Integration
jOOQ, perpustakaan Java untuk bekerja dengan SQL, menyediakan cara yang mudah untuk mengambil output secara automatik daripada pelayan hukuman mati. Dengan menetapkan withFetchServerOutputSize() dalam objek Settings, jOOQ akan mendapatkan semula output pelayan selepas pelaksanaan pertanyaan.
Cadangan: DBMS_OUTPUT.GET_LINES melalui DBMS_OUTPUT.GET_LINE . mengembalikan satu baris pada satu masa, adalah sangat disyorkan untuk menggunakan DBMS_OUTPUT.GET_LINES sebaliknya. Penanda aras telah menunjukkan bahawa DBMS_OUTPUT.GET_LINES jauh lebih pantas apabila dipanggil daripada JDBC.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil DBMS_OUTPUT.GET_LINES Oracle dalam JDBC Tanpa Membuat Objek Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!