PL/SQL - DBMS Output: A Beginner's Guide
Hai there, bakal ahli pangkalan data! Hari ini, kita bakal memulakan sebuah perjalanan menarik ke dunia PL/SQL dan menjelajahkan alat praktis yang dipanggil DBMS Output. Jangan bimbang jika anda belum pernah menulis satu baris kod sebelum ini - saya akan menjadi panduannya yang ramah, dan kita akan mengambil langkah demi langkah. Pada akhir panduan ini, anda akan menjadi handal dalam mengoutputkan mesejseperti seorang pro!
Apa Itu DBMS Output?
Sebelum kita masuk ke dalam hal yang berbelit-belit, mari kita memahami apa sebenarnya DBMS Output. Bayangkan anda sedang memasak resipi yang kompleks. Adakah ia akan membantu jika oven anda dapat memberitahu anda apa yang sedang berlaku di dalamnya? Itu betul apa yang DBMS Output lakukan untuk kod PL/SQL anda!
DBMS Output adalah sebuah paket dalam PL/SQL yang membolehkan anda cetak mesej ke dalam buffer, yang anda boleh lihat kemudian. Itu seperti memiliki buku catatan kecil di mana program anda dapat menulis catatan untuk anda baca kemudian. Ini sangat berguna untuk debugging kod anda dan memahami apa yang berlaku di peringkat berbeza eksekusi program anda.
Memulakan Pengerjaan DBMS Output
Untuk menggunakan DBMS Output, kita perlu melakukan dua hal:
- Enable buffer DBMS Output
- Gunakan prosedur PUT_LINE untuk menulis mesej
Mari lihat contoh yang mudah:
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/
Jika anda menjalankan kod ini, anda mungkin terkejut untuk melihat... tiada apa-apa! Itu kerana kita belum enable buffer DBMS Output. Mari kita betulkan itu:
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/
Sekarang anda akan melihat:
Hello, World!
Tahniah! Anda telah menulis program PL/SQL pertama anda dengan output. Mari kitaongkikan apa yang terjadi:
-
SET SERVEROUTPUT ON;
enable buffer DBMS Output. -
BEGIN
danEND;
menandakan permulaan dan pengakhiran blok PL/SQL kita. -
DBMS_OUTPUT.PUT_LINE('Hello, World!');
adalah perintah yang sebenarnya mencetak mesej kita. - Tanda
/
di akhir memberitahu SQL*Plus untuk menjalankan blok PL/SQL.
Subprogram DBMS_OUTPUT
Sekarang kita sudah mendapat kaki kita basah, mari kita jelajah subprogram (berfikir tentang mereka sebagai alat) yang berbeza dalam paket DBMS_OUTPUT. Berikut adalah tabel yang menggabungkannya:
Subprogram | Keterangan |
---|---|
PUT | Menempatkan string di dalam buffer |
PUT_LINE | Menempatkan baris di dalam buffer |
NEW_LINE | Sisipkan pemisah baris |
GET_LINE | Dapatkan baris dari buffer |
GET_LINES | Dapatkan beberapa baris dari buffer |
ENABLE | Enable paket DBMS_OUTPUT |
DISABLE | Disable paket DBMS_OUTPUT |
Mari kita lihat setiap daripada ini secara detil dengan contoh.
PUT dan PUT_LINE
Prosedur PUT
menambahkan teks ke dalam buffer tanpa pemisah baris, sedangkan PUT_LINE
menambahkan teks dan kemudian memulakan baris baru. Berikut adalah contoh:
BEGIN
DBMS_OUTPUT.PUT('Hello');
DBMS_OUTPUT.PUT(' ');
DBMS_OUTPUT.PUT('World');
DBMS_OUTPUT.NEW_LINE;
DBMS_OUTPUT.PUT_LINE('How are you?');
END;
/
Output:
Hello World
How are you?
Dalam contoh ini, kita menggunakan PUT
untuk membina baris secara beransur, kemudian menggunakan NEW_LINE
untuk memulakan baris baru. PUT_LINE
secara automatik memulakan baris baru setelah mesejnya.
NEW_LINE
Kita sudah melihat NEW_LINE
dalam aksi. Ia mudah tetapi kuat - ia hanya memulakan baris baru dalam output anda. Berikut adalah contoh lain:
BEGIN
DBMS_OUTPUT.PUT_LINE('Line 1');
DBMS_OUTPUT.NEW_LINE;
DBMS_OUTPUT.PUT_LINE('Line 3');
END;
/
Output:
Line 1
Line 3
Perhatikan baris kosong antara "Line 1" dan "Line 3"? Itu adalah kerja NEW_LINE
kita!
GET_LINE dan GET_LINES
Prosedur ini sedikit berbeza - mereka digunakan untuk mengambil output dari buffer. Ini sangat berguna ketika anda memanggil PL/SQL dari bahasa pemrograman lain dan ingin menangkap output.
Berikut adalah contoh ringkas GET_LINE
:
DECLARE
v_line VARCHAR2(255);
v_status INTEGER;
BEGIN
DBMS_OUTPUT.PUT_LINE('This is a test');
DBMS_OUTPUT.GET_LINE(v_line, v_status);
IF v_status = 0 THEN
DBMS_OUTPUT.PUT_LINE('Retrieved: ' || v_line);
ELSE
DBMS_OUTPUT.PUT_LINE('No more lines');
END IF;
END;
/
Dalam contoh ini, kita menempatkan satu baris ke dalam buffer, kemudian segera mengambilnya dengan GET_LINE
. Variabel v_status
memberitahu kita sama ada kita berjaya mengambil baris (0) atau jika tiada lagi baris untuk diambil (1).
ENABLE dan DISABLE
Prosedur ini membolehkan anda menghidupkan dan mematikan DBMS_OUTPUT secara program. Berikut adalah bagaimana anda mungkin menggunainya:
BEGIN
DBMS_OUTPUT.DISABLE;
DBMS_OUTPUT.PUT_LINE('You won''t see this');
DBMS_OUTPUT.ENABLE;
DBMS_OUTPUT.PUT_LINE('But you will see this!');
END;
/
Output:
But you will see this!
Seperti yang anda lihat, PUT_LINE
pertama tidak menghasilkan apa-apa kerana kita mematikan DBMS_OUTPUT. Setelah kita hidupkannya lagi, kita boleh melihat output seperti biasa.
Kesimpulan
Dan di situ, teman-teman! Kita telah menjelajah melalui negeri DBMS Output, dari penggunaan dasar ke subprogram yang berbeza. Ingat, DBMS Output adalah seperti suara program anda - gunakan ia untuk memahami apa yang berlaku dalam kod anda, debug masalah, dan merayakan kejayaan anda.
Sekiranya anda teruskan pengembaraan PL/SQL anda, anda akan menemui DBMS Output adalah alat yang nilaiannya tak ternilai dalam set alat pengembang anda. Ia mudah, kuat, dan sekarang ini, ia milik anda untuk digunakan!
Teruslatih, kekal curiga, dan kod yang gembira!
Credits: Image by storyset