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

DBMS_PARALLEL_EXECUTE dan secara tidak langsung diberikan hibah pada prosedur

Peran tidak diaktifkan secara default di unit tersimpan PL/SQL (diuji dengan Oracle 19 tetapi sama perilaku dalam rilis lama sejak waktu yang sangat lama) :

SQL> set serveroutput on
SQL> select banner from v$version where rownum=1;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> show user;
USER is "USR2"
SQL> select * from session_roles;

ROLE
--------------------------------------------------------------------------------
CONNECT
SELECT_CATALOG_ROLE
HS_ADMIN_SELECT_ROLE
STUFF_DOER

SQL> --
SQL> begin
  2  for r in (select role from session_roles)
  3  loop
  4   dbms_output.put_line('role=' || r.role);
  5  end loop;
  6  end;
  7  /
role=CONNECT
role=SELECT_CATALOG_ROLE
role=HS_ADMIN_SELECT_ROLE
role=STUFF_DOER

PL/SQL procedure successfully completed.

SQL> show errors
No errors.
SQL> create or replace procedure sr is
  2  begin
  3  for r in (select role from session_roles)
  4  loop
  5   dbms_output.put_line('role=' || r.role);
  6  end loop;
  7  end;
  8  /

Procedure created.

SQL> show errors
No errors.
SQL> 
SQL> exec sr;

PL/SQL procedure successfully completed.

SQL> 

Perhatikan perbedaan antara PL/SQL anonim (yang tidak disimpan dalam database) dan unit tersimpan (prosedur/fungsi yang disimpan dalam database).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus pernyataan sangat lambat di Oracle

  2. Akses kursor dengan nama kolom secara dinamis

  3. ROWDTOCHAR() Fungsi di Oracle

  4. pilih entri terbaru

  5. Oracle (+) Operator