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

Kapan saya harus menyarangkan blok PL/SQL BEGIN...END?

Saat Anda ingin menangani pengecualian secara lokal seperti ini:

begin
   for emp_rec in (select * from emp) loop
      begin
         my_proc (emp_rec);
      exception
         when some_exception then
            log_error('Failed to process employee '||emp_rec.empno);
      end;
   end loop;
end;

Dalam contoh ini, pengecualian ditangani dan kemudian kami melanjutkan dan memproses karyawan berikutnya.

Kegunaan lain adalah untuk mendeklarasikan variabel lokal yang memiliki cakupan terbatas seperti ini:

declare
    l_var1 integer;
    -- lots of variables
begin
   -- lots of lines of code
   ...
   for emp_rec in (select * from emp) loop
      declare
         l_localvar integer := 0;
      begin
         -- Use l_localvar
         ...
      end
   end loop;

end;

Ingat, keinginan untuk melakukan ini sering kali merupakan tanda bahwa program Anda terlalu besar dan harus dihentikan:

declare
   l_var1 integer;
   -- lots of variables
   ...
   procedure local_proc (emp_rec emp%rowtype):
      l_localvar integer := 0;
   begin
      -- Use l_localvar
      ...
   end
begin
   -- lots of lines of code
   ...
   for emp_rec in (select * from emp) loop
      local_proc (emp_rec);
   end loop;

end; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hubungan pendek Oracle CASE tidak bekerja dalam grup oleh

  2. Pengikatan Parameter OracleCommand SQL

  3. Bagaimana cara menghitung jumlah kemunculan karakter dalam nilai Oracle varchar?

  4. Bagaimana cara menambahkan server kelola di R12.2

  5. Tipe Data Rekaman Berbasis Kursor Dengan Kursor Mengembalikan Beberapa Nilai Dalam Database Oracle