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

Cara Mendeklarasikan Pengecualian Buat Pengguna Menggunakan Variabel Pengecualian Di Database Oracle

Dalam Pengantar Pengecualian PL/SQL, kami mempelajari bahwa ada tiga cara untuk mendeklarasikan pengecualian yang ditentukan pengguna di Oracle Database. Dalam tutorial ini kita akan menjelajahi cara pertama dan mempelajari cara mendeklarasikan pengecualian yang ditentukan pengguna menggunakan variabel tipe data Pengecualian.

Mendeklarasikan pengecualian yang ditentukan pengguna menggunakan variabel Pengecualian adalah proses tiga langkah. Ketiga langkah ini adalah –

  1. Deklarasikan variabel tipe data pengecualian – Variabel ini akan menanggung seluruh beban di pundaknya.
  2. Tingkatkan Pengecualian – Ini adalah bagian di mana Anda memberi tahu kompiler tentang kondisi yang akan memicu pengecualian.
  3. Menangani pengecualian – Ini adalah bagian terakhir di mana Anda menentukan apa yang akan terjadi ketika kesalahan yang Anda timbulkan akan dipicu.

Dalam tutorial PL/SQL ini saya akan menjelaskan kepada Anda masing-masing dari ketiga langkah ini dengan bantuan kode PL/SQL.

Untuk tujuan demonstrasi saya akan menulis kode yang akan memeriksa apakah pembagi adalah nol atau tidak dalam operasi pembagian. Jika nol maka akan terjadi kesalahan dan akan ditampilkan kepada pengguna jika tidak, nilai sebenarnya yang merupakan hasil dari pembagian aritmatika akan dikembalikan pada layar keluaran.

Langkah 1:Deklarasikan variabel tipe data Pengecualian

Dengan variabel Pengecualian yang saya maksud adalah variabel dengan tipe data Pengecualian. Seperti variabel PL/SQL lainnya, Anda dapat mendeklarasikan variabel Pengecualian di bagian deklarasi blok PL/SQL anonim dan bernama. Variabel pengecualian ini kemudian akan berfungsi sebagai pengecualian yang ditentukan pengguna untuk kode Anda.

DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;

Pada bagian deklarasi ini kita memiliki 4 variabel. Di antara 4 variabel ini, 3 pertama adalah variabel tipe data Number normal dan 4 variabel ex_DivZero adalah variabel tipe data PENGECUALIAN khusus. Variabel ini akan menjadi Pengecualian Buatan Pengguna kami untuk program ini.

Langkah 2:Naikkan Pengecualian

Langkah selanjutnya setelah mendeklarasikan variabel Exception adalah menaikkan eksepsi. Untuk memunculkan exception di PL/SQL kita menggunakan pernyataan Raise.

Pernyataan Raise adalah jenis khusus dari pernyataan PL/SQL yang mengubah aliran normal eksekusi kode. Segera setelah kompiler menemukan kondisi kenaikan, ia mentransfer kontrol ke pengendali pengecualian.

BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;

Di sini kondisi raise disertai dengan kondisi IF-THEN. Dengan bantuan ini kita dapat menghindari sakelar yang tidak diinginkan selama aliran kontrol program. Menggunakan If Condition, kami memastikan bahwa kesalahan ini akan bekerja hanya jika pembagi sama dengan 0.

var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);

Setelah menulis logika untuk memunculkan kesalahan, Anda dapat menulis pernyataan kode yang dapat dieksekusi lainnya seperti yang kami lakukan di sini. Setelah pernyataan Raise, kita melakukan operasi aritmatika pembagian dan menyimpan hasilnya ke dalam variabel var_result, serta menampilkannya kembali sebagai output menggunakan pernyataan OUTPUT DBMS.

Langkah 3:Tangani pengecualian

Itu adalah bagian utama dari kode. Di sini kami menulis logika untuk pengecualian yang ditentukan pengguna kami dan memberi tahu kompiler apa yang harus dilakukan jika dan ketika kesalahan itu terjadi.

EXCEPTION WHEN ex_DivZero THEN
    DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Di sini kita memiliki penangan pengecualian untuk variabel ex_DivZero. Di bagian penanganan pengecualian, kami memiliki pernyataan OUTPUT DBMS yang akan ditampilkan ketika pengguna kami mendefinisikan kesalahan yang ex_DivZero terjadi.

Sekarang mari kita kelompokkan semua potongan kode ini bersama-sama.

Bagi dengan kesalahan nol menggunakan PL/SQL User-define Exception di Oracle Database

SET SERVEROUTPUT ON;
DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;
BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;
  var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);
  EXCEPTION WHEN ex_DivZero THEN
      DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Sebelum menjalankan program ini, pastikan Anda telah menyetel SERVEROUTPUT jika tidak, Anda tidak akan dapat melihat hasilnya.

Seperti pada Langkah-1 kami menetapkan nilai pembagi pada nol yang pada gilirannya akan meningkatkan kesalahan definisi pengguna ex_DivZero karena ini pada kompilasi kode di atas Anda akan melihat string "Error Error - Your Divisor is Zero" yang sama yang kami tentukan di penangan pengecualian kami (langkah 3).

Itulah tutorial PL/SQL tentang cara mendeklarasikan eksepsi yang ditentukan pengguna menggunakan variabel tipe data Exception. Semoga Anda menikmati dan belajar sesuatu yang baru. Jika demikian, pastikan untuk membagikan blog ini ke media sosial Anda dan membantu orang lain dalam belajar bersama saya dan saluran saya. Terima kasih &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. Permintaan untuk memeriksa ukuran tabel di database Oracle

  2. ORA-28040:Tidak ada pengecualian protokol otentikasi yang cocok

  3. Bagaimana cara memanfaatkan WebDev.WebServer.exe (VS Web Server) di x64?

  4. Subquery Oracle tidak melihat variabel dari blok luar 2 level ke atas

  5. Kesalahan memuat oci8.so dengan server Ubuntu 17.04 php 7 dan Apache2