Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memanggil Notasi Untuk Subrutin PL/SQL Di Database Oracle

Karena beberapa tutorial sebelumnya adalah tentang Subrutin PL/SQL seperti Fungsi PL/SQL dan Prosedur Tersimpan sehingga menjadi wajib untuk membicarakan notasi pemanggilannya. Mempelajari konsep Subrutin PL/SQL tidak akan dianggap selesai sampai kita mempelajari notasi pemanggilannya juga.

Apa itu Notasi Panggilan untuk Subrutin PL/SQL?

Notasi pemanggilan adalah cara memberikan nilai ke parameter subrutin seperti fungsi PL/SQL atau prosedur tersimpan.

Jenis Notasi Panggilan untuk Subrutin

Di Oracle PL/SQL ada 3 jenis notasi pemanggilan. Ini adalah:

  1. Notasi Posisi
  2. Notasi Bernama dan
  3. Notasi panggilan campuran

Notasi Panggilan Posisi

Notasi posisi adalah notasi panggilan paling umum yang dapat Anda lihat di hampir setiap bahasa pemrograman komputer. Dalam notasi posisi kita harus menentukan nilai untuk setiap parameter formal secara berurutan. Ini berarti Anda harus memberikan nilai untuk parameter formal dalam urutan yang sama seperti yang dideklarasikan dalam prosedur atau fungsi.

Dalam notasi posisi, tipe data dan posisi parameter aktual harus sesuai dengan parameter formal.

Bacaan yang Disarankan:Parameter Aktual vs. Parameter Formal

Contoh:Notasi Posisi untuk memanggil Subrutin PL/SQL.

CREATE OR REPLACE PROCEDURE emp_sal
(dep_id NUMBER, sal_raise NUMBER) 
IS
BEGIN
  	UPDATE employees 
SET salary = salary * sal_raise 
WHERE department_id = dep_id;
  
DBMS_OUTPUT.PUT_LINE ('salary updated successfully');
END;
 /

Ini adalah contoh yang sama yang kami lakukan di PL/SQL Tutorial 42 tentang cara membuat prosedur tersimpan dengan parameter meskipun beberapa perubahan kecil. Sekarang jika kita menggunakan notasi pemanggilan posisional maka kita harus memberikan nilai ke kedua parameter dari prosedur di atas dengan cara yang sama saat mereka dideklarasikan.

Pemanggilan Prosedur Tersimpan menggunakan notasi posisi di Oracle Database

EXECUTE emp_sal(40,2);

Dalam pemanggilan prosedur sederhana ini, nilai 40 sesuai dengan parameter formal dep_id dan nilai 2 sesuai dengan parameter sal_raise.

Notasi Panggilan Bernama

Notasi panggilan bernama memungkinkan Anda meneruskan nilai ke parameter formal menggunakan namanya. Ini pada gilirannya akan memungkinkan Anda menetapkan nilai hanya untuk parameter wajib atau parameter wajib.

Notasi pemanggilan ini berguna ketika Anda memiliki subrutin dengan parameter di mana beberapa parameter tersebut wajib dan beberapa opsional dan Anda ingin meneruskan nilai hanya ke yang wajib.

Operator Asosiasi

Untuk menetapkan nilai ke parameter formal menggunakan namanya, kami menggunakan operator asosiasi. Merupakan kombinasi dari tanda sama dengan (=) dan lebih besar dari (>). Kami menulis nama parameter formal ke sisi kiri operator dan nilai yang ingin Anda tetapkan ke sisi kanan operator.

Contoh Notasi Pemanggilan Bernama untuk memanggil Subrutin PL/SQL

CREATE OR REPLACE FUNCTION add_num
(var_1 NUMBER, var_2 NUMBER DEFAULT 0, var_3 NUMBER ) RETURN NUMBER 
IS
BEGIN
  RETURN var_1 + var_2 + var_3;
END;
/

Fungsi di atas memiliki 3 parameter. Di antara 3 parameter ini, 2 adalah wajib dan 1 adalah opsional dengan nilai default 0.

Anda dapat memanggil fungsi ini menggunakan notasi posisi. Tetapi ini memiliki batasan yang harus Anda penuhi dan Anda harus memberikan nilai ke semua parameter formal dalam urutan yang sama di mana mereka dideklarasikan dan tipe data parameter formal dan aktual harus cocok.

Jadi, jika Anda ingin menghilangkan parameter opsional dan ingin menggunakan nilai defaultnya atau Anda lupa urutan parameter di mana parameter tersebut dideklarasikan! Maka akan sedikit sulit bagi Anda untuk memanggil subrutin di atas menggunakan notasi posisi. Dalam skenario seperti itu, Anda dapat memanfaatkan Notasi Panggilan Bernama. Notasi panggilan ini akan memberi Anda fleksibilitas yang diinginkan dalam memanggil subrutin Anda.

Pemanggilan Fungsi PL/SQL menggunakan Notasi Pemanggilan Bernama di Oracle Database

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_3 => 5, var_1 =>2);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

Saya telah menjelaskan panggilan Fungsi PL/SQL secara rinci dalam Video Tutorial tentang topik yang sama di saluran YouTube saya.

Notasi Panggilan Campuran untuk memanggil Subrutin PL/SQL

Seperti namanya dalam notasi panggilan campuran, Anda dapat memanggil subrutin menggunakan kombinasi notasi panggilan bernama serta posisi. Notasi panggilan campuran sangat membantu di mana daftar parameter ditentukan dengan semua parameter wajib terlebih dahulu dan parameter opsional berikutnya.

Contoh notasi panggilan campuran untuk memanggil subrutin PL/SQL

Berikut adalah blok anonim di mana kita memanggil fungsi yang sama add_num ( ) yang kita kodekan saat melakukan notasi pemanggilan bernama.

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_1 => 10, 30 ,var_3 =>19);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

Begitulah cara kami menggunakan notasi panggilan campuran untuk memanggil Subrutin PL/SQL.

Coba sendiri

Dengan menggunakan pengetahuan dari konsep di atas, coba selesaikan pertanyaan berikut:

Tulis Fungsi PL/SQL dengan parameter untuk menukar dua angka dan panggil fungsi itu menggunakan notasi panggilan campuran.

Anda dapat membagikan kode Anda atau cuplikan kode Anda dengan saya di media sosial saya [Twitter // Facebook].

Semoga Anda menikmati membaca. Pastikan untuk Suka dan Bagikan blog ini. Terima kasih dan semoga harimu menyenangkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Adakah dampak kinerja di Oracle untuk menggunakan LIKE 'string' vs ='string'?

  2. Besar .patch_storage

  3. Apa sintaks URL JDBC yang benar jika dompet Oracle digunakan?

  4. subquery skalar dalam pernyataan if Kondisi dalam PL/SQL

  5. Bagaimana menghindari kesalahan mutasi tabel