PL/SQL adalah bahasa prosedural yang mengatasi kekurangan yang dihadapi oleh Structured Query Language. Ini adalah perpanjangan dari SQL dan kita bahkan dapat menggunakan kueri SQL tanpa kerumitan dalam aplikasi atau program PL/SQL apa pun. Dalam tutorial PL/SQL ini, kita akan membahas konsep dasar PL/SQL secara detail. Topik berikut dibahas dalam artikel ini.
- Apa itu PL/SQL?
- Fitur
- PL/SQL vs SQL
- Blok Struktur Dalam PL/SQL
- Variabel PL/SQL
- Fungsi Dalam PL/SQL
- Prosedur PL/SQL
- Blok Bersarang
- Pernyataan JIKA
- Pernyataan KASUS
- Pernyataan Loop
- Pernyataan Perulangan Sementara
- Untuk Pernyataan Loop
- Penanganan Luar Biasa
Apa itu PL/SQL?
Ini singkatan dari ekstensi bahasa prosedural ke bahasa kueri terstruktur. Oracle menciptakan PL/SQL yang memperluas beberapa keterbatasan SQL untuk menyediakan solusi yang lebih komprehensif untuk membangun aplikasi mission-critical yang berjalan di database oracle.
Fitur
PL/SQL menyediakan fungsionalitas bahasa prosedural seperti pengambilan keputusan, iterasi, dll.
Menggunakan satu perintah, PL/SQL dapat mengeksekusi sejumlah kueri.
Kami juga dapat menggunakan kembali unit PL/SQL seperti fungsi, pemicu, prosedur, dll yang disimpan dalam database setelah pembuatan.
PL/SQL juga memiliki blok penanganan pengecualian yang menangani pengecualian dalam PL/SQL.
Pemeriksaan kesalahan ekstensif juga dimungkinkan menggunakan PL/SQL
Aplikasi yang ditulis dalam PL/SQL dapat dibawa-bawa ke perangkat keras lain dan sistem operasi asalkan oracle harus operasional.
PL/SQL vs SQL
SQL | PL/SQL |
SQL adalah kueri tunggal yang digunakan untuk melakukan operasi DDL dan DML | PL/SQL adalah blok kode yang digunakan untuk mendefinisikan keseluruhan program atau prosedur/fungsi, dll |
Ini tidak benar-benar menentukan bagaimana sesuatu harus dilakukan, melainkan mendefinisikan apa yang perlu dilakukan | PL/SQL mendefinisikan bagaimana sesuatu harus dilakukan |
Ini mengeksekusi satu pernyataan | Ini mengeksekusi blok pernyataan sekaligus. |
SQL terutama digunakan untuk memanipulasi data | PL/SQL, sebaliknya, digunakan untuk membuat aplikasi |
Tidak boleh berisi kode PL/SQL | Karena ini adalah ekstensi SQL, ia dapat berisi kode SQL di dalamnya |
Blok Struktur Dalam PL/SQL
PL/SQL biasanya mengatur kode ke dalam blok. Blok kode tanpa nama dikenal sebagai blok anonim. Ini dikenal sebagai blok anonim karena tidak disimpan dalam database oracle. Mari kita lihat blok anonim di PL/SQL.
[DECLARE] pernyataan pernyataan;[BEGIN] pernyataan eksekusi; [PENGECUALIAN] pernyataan pengecualian;END;/
Melihat diagram di atas, kita dapat melihat bahwa struktur blok dibagi menjadi empat bagian, yaitu deklarasi, awal, pengecualian, dan akhir. Mari kita coba memahami bagaimana struktur blok bekerja di PL/SQL. Dari semua bagian ini, bagian eksekusi adalah wajib dan sisanya adalah opsional.
MENYATAKAN kata kunci digunakan untuk untuk bagian deklarasi digunakan untuk mendeklarasikan tipe dan struktur data seperti variabel, fungsi, dll.
MULAI kata kunci digunakan untuk bagian eksekusi. Ini adalah wajib dan berisi semua pernyataan yang perlu dieksekusi. Blok ini adalah tempat logika bisnis didefinisikan, kita dapat menggunakan pernyataan prosedural atau SQL di blok ini.
PENGECUALIAN kata kunci digunakan untuk bagian pengecualian. Ini berisi semua pernyataan pengecualian.
END kata kunci menandai akhir blok dan garis miring '/' memberitahu alat yang Anda gunakan (Oracle Database Tool) untuk mengeksekusi blok PL/SQL.
Berikut adalah contoh sederhana untuk menunjukkan bagaimana kita dapat menggunakan kode PL/SQL.
BEGIN NULL;END;/
Sekarang setelah kita mengetahui cara kerja struktur blok di PL/SQL, mari kita pahami berbagai aspek PL/SQL seperti mendeklarasikan, memberi nama, dan menetapkan nilai ke variabel.
Variabel PL/SQL
Variabel dalam PL/SQL pada dasarnya adalah nama yang bervariasi atau lokasi penyimpanan sementara yang mendukung tipe data tertentu. Mari kita lihat bagaimana kita dapat menggunakan variabel dalam program PL/SQL.
Aturan Penamaan Variabel
PL/SQL mengikuti aturan berikut untuk penamaan variabel.
Variabel tidak boleh lebih dari 31 karakter
Nama variabel harus dimulai dengan karakter ASCII. Karena PL/SQL peka huruf besar-kecil, huruf besar dan huruf kecil akan menjadi variabel yang berbeda.
Setelah karakter pertama, harus ada karakter khusus($,_ ) atau angka apa pun.
Konvensi Penamaan
Gunakan konvensi penamaan berikut yang tercantum di bawah ini untuk menggunakan variabel.
Awalan | Jenis Data |
v_ | VARCHAR2 |
n_ | NUMBER |
t_ | TABEL |
r_ | BARIS |
d_ | TANGGAL |
b_ | BOOLEAN |
Deklarasi
Mari kita coba memahami bagaimana deklarasi variabel dilakukan di PL/SQL
Deklarasi menyertakan nama variabel diikuti dengan tipe data dan dipisahkan dengan titik koma. Berikut ini adalah contoh untuk menunjukkan bagaimana Anda dapat mendeklarasikan variabel dalam PL/SQL.
DECLARE v_name VARCHAR(25); n_umur NUMBER(3);BEGIN NULL;END;
Anda juga dapat menambahkan panjang tipe data seperti yang telah kita lakukan pada contoh di atas.
Jangkar
Jangkar pada dasarnya mengacu pada penggunaan kata kunci %TYPE untuk mendeklarasikan variabel dengan tipe data yang terkait dengan tipe data kolom dari kolom tertentu dalam tabel.
Lihatlah contoh untuk memahami ini. Misalkan kita memiliki tabel EMPLOYEES, kita dapat menggunakan anchor dengan cara berikut.
DECLARE v_name EMPLOYEE.NAME%TYPE; n_age EMPLOYEE.AGE%TYPE;BEGIN NULL;END;/
Tugas
Penetapan variabel cukup mudah, kita dapat menggunakan operator penugasan untuk memberikan nilai pada variabel. Contoh berikut menunjukkan bagaimana kita dapat menetapkan nilai ke variabel.
DECLARE v_name VARCHAR(20); n_kursus VARCHAR(10);BEGIN v_name ="edureka"; v_course ="sql";END;/
Inisialisasi
Kita dapat menginisialisasi nilai untuk variabel di bagian deklarasi juga. Contoh berikut menunjukkan bagaimana kita dapat menginisialisasi nilai ke variabel.
DECLAREv_name VARCHAR(20) ="edureka";n_kursus VARCHAR(10) ="sql";BEGIN NULL;END;/
Sekarang setelah kita mengetahui bagaimana kita dapat bekerja dengan variabel, mari kita coba memahami bagaimana kita akan menggunakan fungsi dalam PL/SQL.
Fungsi Dalam PL/SQL
Sebuah fungsi dalam PL/SQL pada dasarnya adalah blok bernama yang mengembalikan nilai. Ini juga dikenal sebagai subrutin atau subprogram, sintaks berikut menunjukkan bagaimana kita dapat menggunakan fungsi dalam PL/SQL.
BUAT [OR REPLACE] FUNCTION nama_fungsi [( parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN pernyataan return return_data_type; PENGECUALIAN END; /
Pertama-tama, Anda harus menentukan nama fungsi setelah kata kunci. Nama fungsi harus dimulai dengan kata kerja. Suatu fungsi mungkin tidak memiliki satu pun, satu atau lebih parameter yang kita tentukan dalam parameter. Kita harus menentukan tipe data dari setiap parameter secara eksplisit, dan kemudian muncul mode yang dapat salah satu dari berikut ini.
IN – Parameter IN adalah parameter hanya-baca.
KELUAR – Ini adalah parameter hanya-tulis
MASUK KE LUAR – Parameter IN OUT adalah parameter baca-tulis.
Berikut adalah contoh sederhana untuk menunjukkan bagaimana kita menggunakan fungsi di PL/SQL.
BUAT ATAU GANTI FUNGSI try_parse( iv_number DI VARCHAR2) RETURN NUMBER ISBEGIN RETURN to_number(iv_number); PENGECUALIAN KETIKA orang lain KEMBALI NULL;END;
Memanggil Fungsi
Mari kita coba memanggil fungsi yang telah kita buat di blok anonim pada contoh berikut.
SET SERVEROUTPUT PADA UKURAN 1000000; MENYATAKAN nomor n_x; n_y nomor; n_z nomor;BEGIN n_x :=try_parse('256'); n_y :=try_parse('29.72'); n_z :=try_parse('pqrs'); DBMS_OUTPUT.PUT_LINE(n_x); DBMS_OUTPUT.PUT_LINE(n_y); DBMS_OUTPUT.PUT_LINE(n_z);END;/
Kita juga dapat memanggil fungsi dalam pernyataan SELECT. Sekarang kita tahu bagaimana kita bisa menggunakan fungsi di PL/SQL, mari kita coba memahami bagaimana kita bekerja dengan prosedur di PL/SQL.
Prosedur PL/SQL
Prosedur pada dasarnya adalah blok yang melakukan tugas tertentu. Dengan menggunakan prosedur, kita dapat membungkus atau merangkum logika bisnis yang kompleks dan menggunakannya kembali di lapisan aplikasi dan basis data.
Mari kita lihat contoh sederhana untuk memahami cara kerja prosedur di PL/SQL
BUAT ATAU GANTI PROSEDUR adjust_salary( in_employee_id IN EMPLOYEES.EMPLOYEE_ID%TYPE, in_percent IN NUMBER) ISBEGIN -- perbarui gaji karyawan UPDATE karyawan SET gaji =gaji + gaji * in_percent / 100 WHERE employee_id =in_employee_id;END;Dalam contoh di atas, kami memiliki dua parameter, prosedur menyesuaikan gaji dengan persentase tertentu dan kata kunci UPDATE memperbarui nilai dalam informasi gaji.
Tajuk Prosedur
Bagian sebelum IS kata kunci disebut header prosedur. Berikut ini adalah beberapa petunjuk yang harus dipahami saat bekerja dengan prosedur.
skema – Ini adalah nama opsional skema yang dimiliki oleh prosedur.
nama – Nama prosedur yang harus dimulai dengan kata kerja.
parameter – Ini adalah daftar parameter opsional.
AUTHID – Ini menentukan apakah prosedur akan dijalankan dengan hak istimewa pengguna saat ini atau pemilik asli prosedur.
Badan Prosedur
Segala sesuatu yang muncul setelah kata kunci IS disebut badan prosedur. Kami memiliki pernyataan deklarasi, pengecualian dan eksekusi di badan prosedur. Berbeda dengan fungsi, kata kunci RETURN dalam prosedur digunakan untuk menghentikan eksekusi dan mengembalikan kontrol ke pemanggil.
Memanggil Prosedur
Mari kita lihat bagaimana kita dapat memanggil prosedur di PL/SQL.
EXEC procedure_name(param1,param2…paramN);
Kita dapat memanggil prosedur tanpa parameter hanya dengan menggunakan kata kunci EXEC dan nama prosedur. Sekarang kita tahu bagaimana kita bisa bekerja dengan prosedur, mari kita coba memahami bagaimana blok bersarang digunakan di PL/SQL.
Blok Bersarang
Blok bersarang tidak lain adalah kombinasi dari satu atau lebih blok PL/SQL untuk mendapatkan kontrol yang lebih baik atas eksekusi dan penanganan program yang luar biasa.
Berikut adalah contoh sederhana dari blok bersarang.
SET SERVEROUTPUT PADA UKURAN 1000000; MENYATAKAN n_emp_id EMPLOYEES.EMPLOYEE_ID%TYPE :=&emp_id1;BEGIN MENYATAKAN n_emp_id employee.employee_id%TYPE :=&emp_id2; v_name employee.first_name%TYPE; BEGIN PILIH first_name INTO v_name FROM employee WHERE employee_id =n_emp_id; DBMS_OUTPUT.PUT_LINE('Nama depan pegawai ' || n_emp_id || ' adalah ' || v_name); PENGECUALIAN KETIKA no_data_found MAKA DBMS_OUTPUT.PUT_LINE('Karyawan ' || n_emp_id || ' tidak ditemukan'); END;END;/
Blok PL/SQL luar pada contoh di atas dikenal sebagai blok induk atau blok penutup, blok dalam, di sisi lain, dikenal sebagai blok anak atau blok blok tertutup.
Bukan ide yang bagus untuk menggunakan variabel dengan nama yang sama di kedua blok karena selama eksekusi variabel blok anak akan menimpa variabel blok induk. Itu terjadi karena PL/SQL memberikan prioritas pertama pada variabel di dalam bloknya sendiri.
Blokir Label
Kami dapat mengatasi masalah ini dengan label blok yang membantu kami membuat referensi ke variabel di dalam blok menggunakan label.
Berikut adalah contoh sederhana untuk menunjukkan bagaimana kita dapat menggunakan label blok.
<>DECLARE...BEGIN...END;
Menggunakan label blok membantu meningkatkan keterbacaan kode, mendapatkan kontrol yang lebih baik, dan membuat referensi ke blok. Sekarang kita tahu bagaimana kita bisa bekerja dengan blok bersarang, mari kita coba memahami bagaimana PERNYATAAN JIKA bekerja di PL/SQL.
Pernyataan JIKA
PL/SQL memiliki tiga PERNYATAAN JIKA
JIKA-MAKA – Ini adalah PERNYATAAN JIKA paling sederhana jika kondisinya benar, pernyataan akan dieksekusi, jika kondisinya salah, tidak ada apa-apa.
IF-THEN-ELSE – Dalam hal ini, klausa ELSE ditambahkan untuk urutan pernyataan alternatif.
IF-THEN-ELSEIF – Ini memungkinkan kita untuk menjalankan beberapa kondisi pengujian secara berurutan.
Sintaks JIKA-MAKA
IF condition THEN sequence_of_statements;END IF;
Sintaks IF-THEN-ELSE
IF condition THEN sequence_of_if_statements;ELSE sequence_of_else_statements;END IF;
Sintaks IF-THEN-ELSEIF
IF condition1 THEN sequence_of_statements1ELSIF condition2 THEN sequence_of_statements2ELSE sequence_of_statements3END IF;
Sekarang setelah kita selesai dengan IF STATEMENT mari kita lihat pernyataan CASE di PL/SQL.
Pernyataan KASUS
Pernyataan CASE pada dasarnya membantu dalam mengeksekusi urutan pernyataan berdasarkan pemilih. Selektor, dalam hal ini, dapat berupa apa saja, dapat berupa variabel, fungsi, atau ekspresi sederhana. Berikut adalah contoh sederhana untuk menunjukkan sintaks pernyataan CASE di PL/SQL.
[<>]KASUS [BENAR | pemilih] KETIKA ekspresi1 MAKA sequence_of_statements1; KAPAN ekspresi2 MAKA sequence_of_statements2; ... KETIKA ekspresiN MAKA sequence_of_statementsN; [ELSE sequence_of_statementsN+1;]END CASE [label_name];
Dalam sintaks di atas, setelah kata kunci CASE muncul pemilih. PL/SQL akan mengevaluasi pemilih hanya sekali untuk menentukan pernyataan mana yang perlu dieksekusi.
Diikuti oleh pemilih adalah kata kunci WHEN. Jika ekspresi memenuhi pemilih maka pernyataan yang sesuai setelah kata kunci THEN akan dieksekusi.
Sekarang kita tahu bagaimana kita bisa menggunakan pernyataan CASE, mari kita coba memahami bagaimana kita akan menggunakan pernyataan loop di PL/SQL.
Pernyataan Loop
Pernyataan loop dalam PL/SQL adalah pernyataan iteratif yang memungkinkan Anda untuk mengeksekusi urutan pernyataan beberapa kali. Berikut adalah contoh sederhana untuk menunjukkan sintaks pernyataan loop dalam PL/SQL.
LOOP sequence_of_statements;END LOOP;
Harus ada setidaknya satu pernyataan yang dapat dieksekusi di antara kata kunci LOOP dan END LOOP.
Pengulangan dengan Pernyataan KELUAR
Pernyataan EXIT dan EXIT saat memungkinkan Anda keluar dari loop. Pernyataan EXIT WHEN mengakhiri loop secara kondisional sementara EXIT mengakhiri eksekusi tanpa syarat.
LOOP ... EXIT WHEN kondisi;END LOOP;
Label Lingkaran
Label loop digunakan untuk memenuhi syarat nama variabel penghitung loop saat digunakan dalam loop bersarang. Berikut adalah sintaks dari label loop.
<
Sekarang setelah kita mengetahui bagaimana kita dapat menggunakan pernyataan perulangan, mari kita lihat pernyataan perulangan while untuk pemahaman yang lebih baik.
Pernyataan Perulangan Sementara
Kita dapat menggunakan pernyataan WHILE loop ketika jumlah eksekusi tidak ditentukan sampai eksekusi dimulai. Sintaks berikut digunakan untuk pernyataan loop WHILE di PL/SQL.
WHILE conditionLOOP sequence_of_statements;END LOOP;
Kondisi dalam sintaks adalah nilai boolean atau ekspresi yang dievaluasi sebagai TRUE, FALSE, atau NULL. Jika kondisinya TRUE, pernyataan akan dieksekusi, jika FALSE, eksekusi berhenti dan kontrol beralih ke pernyataan yang dapat dieksekusi berikutnya.
Sekarang kita tahu bagaimana kita dapat menggunakan pernyataan loop WHILE, mari kita lihat pernyataan loop FOR.
Untuk Pernyataan Loop
Pernyataan loop FOR dalam PL/SQL memungkinkan kita untuk mengeksekusi urutan pernyataan untuk beberapa kali tertentu. Berikut ini adalah sintaks untuk menggunakan pernyataan loop FOR di PL/SQL
UNTUK loop_counter DI [REVERSE] lower_bound .. higher_boundLOOP sequence_of_statements;END LOOP;
PL/SQL membuat variabel lokal loop_counter secara otomatis dengan tipe data INTEGER untuk loop sehingga Anda tidak perlu mendeklarasikannya secara eksplisit. Batas bawah..batas lebih tinggi adalah rentang di mana loop berulang. Selain itu, Anda harus memiliki setidaknya satu pernyataan yang dapat dieksekusi antara kata kunci LOOP dan END LOOP.
Sekarang kita tahu bagaimana kita bisa menggunakan pernyataan loop di PL/SQL, mari kita lihat penanganan luar biasa di PL/SQL.
Penanganan Luar Biasa
Dalam PL/SQL segala jenis kesalahan diperlakukan sebagai pengecualian. Pengecualian dapat diperlakukan sebagai kondisi khusus yang dapat mengubah atau mengubah alur eksekusi. Dalam PL/SQL, ada dua jenis pengecualian.
Pengecualian Sistem – Ini dimunculkan oleh run-time PL/SQL ketika mendeteksi kesalahan.
Pengecualian Buatan Programmer – Pengecualian ini ditentukan oleh programmer dalam aplikasi tertentu.
Mendefinisikan Pengecualian
Pengecualian dalam PL/SQL harus dideklarasikan sebelum dapat dimunculkan. Kita dapat mendefinisikan exception menggunakan kata kunci EXCEPTION seperti yang telah kita lakukan pada contoh di bawah ini.
PENGECUALIAN_NAME PENGECUALIAN;
Untuk memunculkan pengecualian, kami menggunakan kata kunci RAISE.
NAIK PENGECUALIAN_NAME;
Jadi itu saja tentang PL/SQL, saya harap artikel ini membantu Anda menambah nilai pengetahuan Anda. Untuk informasi lebih lanjut tentang SQL atau Database, Anda dapat merujuk ke daftar bacaan lengkap kami di sini:Databases Edureka .
Jika Anda ingin mendapatkan pelatihan terstruktur tentang MySQL, lihat Pelatihan Sertifikasi DBA MySQL kami yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami MySQL secara mendalam dan membantu Anda menguasai subjek tersebut.
Ada pertanyaan untuk kami? Silakan sebutkan di bagian komentar ”Tutorial PL/SQL ” dan saya akan menghubungi Anda kembali.