Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

DBMS_PARALLEL_EXECUTE và các khoản trợ cấp gián tiếp cho quy trình

Các vai trò không được kích hoạt theo mặc định trong các đơn vị được lưu trữ PL / SQL (được thử nghiệm với Oracle 19 nhưng nó vẫn như cũ hành vi trong các bản phát hành cũ hơn kể từ rất lâu) :

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> 

Lưu ý sự khác biệt giữa PL / SQL ẩn danh (không được lưu trữ trong cơ sở dữ liệu) và đơn vị được lưu trữ (thủ tục / hàm được lưu trữ trong cơ sở dữ liệu).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước vùng bảng thực trong oracle

  2. Chỉ mục không được sử dụng do chuyển đổi loại?

  3. Cách kiểm tra NULL hoặc không hợp lệ trong truy vấn HQL

  4. giữ một kết nối với DB hoặc đóng mở theo nhu cầu

  5. Cách nhập liên kết cho một tham số nhiều giá trị trong SQL Developer