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!

PL/SQL - Procedures

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!

  1. Bagian Declarasi: Ini adalah tempat kita memperkenalkan bahan-bahan kita (variabel, konstanta, dll.).
  2. Bagian Eksekusi: Ini tempat magik terjadi - kode aktual kita berada di sini.
  3. 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 dan END: Kata-kata ini membungkus bagian eksekusi.
  • DBMS_OUTPUT.PUT_LINE: Ini adalah prosedur bawaan yang mencetak teks.
  • /: Tanda ini menjalankan seluruh pernyataan CREATE 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:

  1. Notasi Posisional: Kita menyampaikan parameter dalam urutan mereka didefinisikan.
  2. 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