Thursday, October 12, 2017

Pengantar Prosedur PL / SQL


Seperti fungsi PL / SQL, prosedur PL / SQL adalah blok bernama yang melakukan tugas tertentu. Prosedur PL / SQL memungkinkan kamu mengenkapsulasi logika bisnis yang kompleks dan menggunakannya kembali di lapisan database dan lapisan aplikasi.

Berikut ini menggambarkan sintaks prosedur PL / SQL:

PROCEDURE [schema.]name[( parameter[, parameter...] ) ]
[AUTHID DEFINER | CURRENT_USER]
IS
[--declarations  statements]
BEGIN
--executable statements
[ EXCEPTION
---exception handlers]
END [name];

Mari kita periksa sintaks PL / SQL secara lebih rinci. Kita bisa membagi prosedur PL / SQL menjadi dua bagian: header dan body.


PL / SQL Procedure Header

Bagian sebelum kata kunci IS disebut perintah prosedur header atau prosedur. Elemen dalam header prosedur dijelaskan sebagai berikut:

  • Schema:  nama skema opsional yang menjadi prosedurnya. Defaultnya adalah pengguna saat ini. Jika kamu menentukan pengguna yang berbeda, pengguna saat ini harus memiliki hak istimewa untuk membuat prosedur dalam skema itu.
  • Name:  nama prosedur Nama prosedur, menurut konvensi, harus dimulai dengan kata kerja mis., Put_line
  • Parameters:  daftar parameter pilihan Silakan lihat fungsi PL / SQL untuk informasi lebih lanjut tentang parameter dengan mode yang berbeda IN, OUT dan IN OUT.
  • AUTHID:   AUHTID opsional menentukan apakah prosedur akan dijalankan dengan hak istimewa pemilik (DEFINER) dari prosedur atau dengan hak istimewa pengguna saat ini yang ditentukan oleh CURRENT_USER.

PL / SQL Procedure Body

Semuanya setelah kata kunci IS dikenal sebagai procedure body. Badan prosedur memiliki sintaks yang sama dengan blok anonim yang terdiri dari bagian deklarasi, eksekusi dan pengecualian.

Bagian deklarasi dan pengecualian bersifat opsional. Kamu harus memiliki setidaknya satu pernyataan yang dapat dieksekusi di bagian eksekusi. Bagian eksekusi adalah di mana kamu meletakkan kode untuk menerapkan logika bisnis tertentu untuk melakukan tugas tertentu.

Dalam PL / SQL prosedur  dapat memiliki pernyataan RETURN. Namun, tidak seperti pernyataan RETURN pada fungsi yang mengembalikan nilai pada program panggilan, pernyataan RETURN dalam prosedur hanya digunakan untuk menghentikan eksekusi prosedur dan kontrol kembali ke pemanggil.

Pernyataan RETURN dalam prosedur tidak mengambil ekspresi atau konstan.

Contoh Prosedur PL / SQL


Kita akan membuat sebuah prosedur bernama adjust_salary () dalam database sampel SDM yang disediakan oleh Oracle. Kita akan mengupdate informasi gaji pegawai di meja karyawan dengan menggunakan statemen SQL UPDATE.

Berikut ini adalah kode sumber dari prosedur adjust_salary ():

 CREATE OR REPLACE PROCEDURE adjust_salary(
    in_employee_id IN EMPLOYEES.EMPLOYEE_ID%TYPE,
    in_percent IN NUMBER
) IS
BEGIN
   -- update employee's salary
   UPDATE employees
   SET salary = salary + salary * in_percent / 100
   WHERE employee_id = in_employee_id;
END;


Bagaimana cara kerjanya

  • Prosedur ini memiliki dua parameter: IN_EMPLOYEE_ID dan IN_PERCENT.
  • Prosedur ini menyesuaikan gaji karyawan tertentu yang ditentukan IN_EMPLOYEE_ID dengan persentase IN_PERCENT tertentu.
  • Di bagian prosedur, kami menggunakan pernyataan UPDATE untuk memperbarui informasi gaji.

Mari kita lihat bagaimana memanggil prosedur ini dalam berbagai konteks.

Memanggil Prosedur PL / SQL


Prosedur dapat memanggil prosedur lain. Suatu prosedur tanpa parameter dapat dipanggil secara langsung dengan menggunakan pernyataan EXEC atau EXECUTE statement diikuti dengan nama prosedur sebagai berikut:

EXEC procedure_name ();
EXEC procedure_name;


Prosedur dengan parameter dapat dipanggil dengan menggunakan pernyataan EXEC atau EXECUTE yang diikuti dengan nama prosedur dan parameternya sesuai urutan daftar parameter prosedur seperti yang ditunjukkan di bawah ini:

EXEC procedure_name (param1, param2 ... paramN);


Sekarang, kita bisa memanggil prosedur adjust_salary () sebagai pernyataan berikut:

-- before adjustment
SELECT salary FROM employees WHERE employee_id = 200;
-- call procedure
exec adjust_salary(200,5);
-- after adjustment
SELECT salary FROM employees WHERE employee_id = 200;
Dalam tutorial ini, kami telah perkenalkan prosedur PL / SQL dan menunjukkan kepada kamu langkah demi langkah bagaimana mengembangkan dan memanggil prosedur PL / SQL yang menyesuaikan gaji karyawan di database HR.


sumber referensi dan artikel asli : http://www.plsqltutorial.com

0 comments:

Post a Comment

Popular Posts