ID (Indonesia) Translation

PL/SQL - Prosedur: Panduan untuk Pemula

Hai teman-teman, para ahli PL/SQL masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia prosedur PL/SQL. Jangan khawatir jika Anda baru belajar pemrograman - saya akan menjadi panduan ramah Anda, dan kita akan mengambil langkah ini secara bertahap. Pada akhir panduan ini, Anda akan dapat membuat prosedur Anda sendiri seperti seorang ahli!

PL/SQL - Procedures

Apa Itu Prosedur PL/SQL?

Sebelum kita masuk ke detil, mari kita pahami apa itu prosedur. bayangkan prosedur sebagai resep yang dapat digunakan berulang-ulang dalam memasak. Seperti Anda mungkin memiliki resep untuk kue coklat favorit Anda yang Anda gunakan berkali-kali, prosedur adalah sekumpulan pernyataan SQL dan PL/SQL yang Anda dapat panggil saat 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 adalah tempat magik terjadi - kode nyata kita berada di sini.
  3. Bagian Penanganan Ekscepsi: Ini adalah jaring 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 gemuruhkan 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;
/

Mari kitauraikan ini:

  • CREATE OR REPLACE PROCEDURE: Ini memberitahu Oracle untuk membuat prosedur baru atau mengganti 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 Terpisah

Bagus! Kita telah membuat prosedur kita, tapi bagaimana cara menjalankan itu? Itu mudah sekali:

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 Terpisah

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 Memasukkan nilai ke dalam prosedur
OUT Mengembalikan nilai dari prosedur
IN OUT Memasukkan nilai dan mengembalikan nilai

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 nilai mana.

Mari kita lihat kedua-duanya 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 sangat berguna saat Anda memiliki banyak parameter atau ingin melewatkan parameter opsional.

Dan begitu juga, teman-teman! Kita telah meliputi dasar-dasar prosedur PL/SQL, dari pembuatan sampai eksekusi, dan bahkan menyentuh parameter serta bagaimana menyampaikannya. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba prosedur Anda sendiri.

Sebelum kita selesai, ini adalah一个joke singkat: Mengapa administrator basis data meninggalkan istrinya? Dia memiliki terlalu banyak pandangan dan tidak dinormalisasi!

Selamat coding, dan semoga prosedur Anda selalu menjalankan secara sukses!

Credits: Image by storyset