PL/SQL - Prosedur: Panduan untuk Pemula
Hai sana, para ahli PL/SQL masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia prosedur PL/SQL. Jangan khawatir jika Anda baru dalam programming - saya akan menjadi panduan ramah Anda, dan kita akan bergerak langkah demi langkah. Pada akhir panduan ini, Anda akan dapat membuat prosedur Anda sendiri seperti seorang ahli!
Apa Itu Prosedur PL/SQL?
Sebelum kita mendalam, mari kita memahami apa itu prosedur. P想象 a prosedur seperti resep yang dapat digunakan kembali dalam memasak. Seperti halnya Anda mungkin memiliki resep untuk kue kacang chocolate favorit Anda yang Anda gunakan berulang-ulang, prosedur adalah himpunan pernyataan SQL dan PL/SQL yang Anda dapat panggil kapan pun Anda memerlukan untuk melakukan tugas tertentu.
Bagian-Bagian Subprogram PL/SQL
Sekarang, mari kitauraikan anatomi subprogram PL/SQL (yang mencakup prosedur). Ini seperti memahami bagian-bagian yang berbeda dari sandwich - setiap komponen memiliki perannya!
- Bagian Declarasi: Ini adalah tempat kita memperkenalkan bahan-bahan kita (variabel, konstanta, dll.).
- Bagian Eksekusi: Ini tempat magik terjadi - kode aktual kita berada di sini.
- Bagian Penanganan Ekscepsi: Ini jaringan keselamatan kita, menangkap kesalahan yang mungkin terjadi.
Berikut adalah representasi visual sederhana:
DECLARE
-- Bagian Declarasi
BEGIN
-- Bagian Eksekusi
EXCEPTION
-- Bagian Penanganan Ekscepsi
END;
Membuat Prosedur
Mari kita sisir lengan dan membuat prosedur pertamanya! Kita akan mulai dengan sesuatu yang sederhana - prosedur yang mengatakan "Hello, World!".
CREATE OR REPLACE PROCEDURE say_hello IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/
mariuraikan ini:
-
CREATE OR REPLACE PROCEDURE
: Ini memberitahu Oracle untuk membuat prosedur baru atau menggantikan prosedur yang sudah ada dengan nama yang sama. -
say_hello
: Ini adalah nama yang kita berikan ke prosedur kita. -
IS
: Kata kunci ini memisahkan header prosedur dari tubuhnya. -
BEGIN
danEND
: Kata-kata ini membungkus bagian eksekusi. -
DBMS_OUTPUT.PUT_LINE
: Ini adalah prosedur bawaan yang mencetak teks. -
/
: Tanda ini menjalankan seluruh pernyataanCREATE PROCEDURE
.
Menjalankan Prosedur Mandiri
Bagus! Kita telah membuat prosedur kita, tapi bagaimana kita menjalankannya? Itu mudah seperti kue:
BEGIN
say_hello;
END;
/
Ketika Anda menjalankan ini, Anda seharusnya melihat "Hello, World!" dicetak. Selamat! Anda baru saja membuat dan menjalankan prosedur PL/SQL pertama Anda!
Menghapus Prosedur Mandiri
kadang-kadang, kita perlu membersihkan rumah. Jika Anda ingin menghapus prosedur, itu mudah:
DROP PROCEDURE say_hello;
Perintah ini akan menghapus prosedur say_hello
. Hatikan kekuatan ini - dengan kekuatan besar datang tanggung jawab besar!
Mode Parameter dalam Subprogram PL/SQL
Sekarang, mari kita membuat prosedur kita lebih fleksibel dengan menambahkan parameter. Dalam PL/SQL, parameter dapat memiliki mode yang berbeda:
Mode | Deskripsi |
---|---|
IN | Mengirim nilai ke prosedur |
OUT | Mengembalikan nilai dari prosedur |
IN OUT | Menyirim nilai masuk dan mengembalikan nilai keluar |
Mari kita membuat prosedur dengan parameter IN:
CREATE OR REPLACE PROCEDURE greet_user(p_name IN VARCHAR2) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, ' || p_name || '!');
END;
/
Sekarang kita dapat menyapa pengguna yang berbeda:
BEGIN
greet_user('Alice');
greet_user('Bob');
END;
/
Ini akan mencetak:
Hello, Alice!
Hello, Bob!
Metode Menyampaikan Parameter
Ketika memanggil prosedur dengan parameter, kita memiliki dua metode utama:
- Notasi Posisional: Kita menyampaikan parameter dalam urutan mereka didefinisikan.
- Notasi Nama: Kita menentukan parameter mana yang sesuai dengan nilai mana.
Mari kita lihat keduanya dalam aksi dengan prosedur baru:
CREATE OR REPLACE PROCEDURE calculate_rectangle(
p_length IN NUMBER,
p_width IN NUMBER,
p_area OUT NUMBER,
p_perimeter OUT NUMBER
) IS
BEGIN
p_area := p_length * p_width;
p_perimeter := 2 * (p_length + p_width);
END;
/
Sekarang, mari kita panggil prosedur ini menggunakan kedua notasi:
DECLARE
v_area NUMBER;
v_perimeter NUMBER;
BEGIN
-- Notasi Posisional
calculate_rectangle(5, 3, v_area, v_perimeter);
DBMS_OUTPUT.PUT_LINE('Posisional: Area = ' || v_area || ', Perimeter = ' || v_perimeter);
-- Notasi Nama
calculate_rectangle(p_width => 3, p_length => 5, p_perimeter => v_perimeter, p_area => v_area);
DBMS_OUTPUT.PUT_LINE('Nama: Area = ' || v_area || ', Perimeter = ' || v_perimeter);
END;
/
Kedua panggilan akan menghasilkan hasil yang sama:
Posisional: Area = 15, Perimeter = 16
Nama: Area = 15, Perimeter = 16
Notasi nama khususnya berguna ketika Anda memiliki banyak parameter atau ingin melewatkan parameter opsional.
Dan itu saja, teman-teman! Kita telah meliputi dasar-dasar prosedur PL/SQL, dari pembuatan hingga eksekusi, dan bahkan menyentuh parameter serta cara mensampaikannya. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba prosedur Anda sendiri.
Sebelum kita selesaikan, ini adalah sebuah lelucon: Mengapa administrator basis data meninggalkan istrinya? Dia memiliki terlalu banyak pandangan dan tidak dinormalisasi!
Selamat coding, dan may your procedures always execute successfully!
Credits: Image by storyset