Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil DBMS_OUTPUT.GET_LINES Oracle dalam JDBC Tanpa Membuat Objek Pangkalan Data?

Bagaimana untuk Mengambil DBMS_OUTPUT.GET_LINES Oracle dalam JDBC Tanpa Membuat Objek Pangkalan Data?

DDD
DDDasal
2024-12-31 18:38:10683semak imbas

How to Fetch Oracle's DBMS_OUTPUT.GET_LINES in JDBC Without Creating Database Objects?

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!

Kenyataan:
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