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!
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!
- Bagian Declarasi: Ini adalah tempat kita memperkenalkan bahan-bahan kita (variabel, konstanta, dll.).
- Bagian Eksekusi: Ini adalah tempat magik terjadi - kode nyata kita berada di sini.
- 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
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 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:
- Notasi Posisional: Kita menyampaikan parameter dalam urutan mereka didefinisikan.
- 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