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

Tạo người dùng từ các biến chuỗi trong một khối PL / SQL

PLS-00103:Gặp biểu tượng "CREATE" khi mong đợi một trong những điều sau:

Lỗi ở trên là do bạn đang sử dụng DDL bên trong PL / SQL . Bạn không thể làm điều đó. Bạn phải (ab) sử dụng THỰC HIỆN NGAY LẬP TỨC để phát hành câu lệnh DDL trong PL / SQL .

Ví dụ,

SQL> DECLARE
  2    my_user     VARCHAR2(30) := 'foo';
  3    my_password VARCHAR2(9)  := '1234';
  4  BEGIN
  5    EXECUTE IMMEDIATE 'CREATE USER '||my_user||' IDENTIFIED BY '||my_password;
  6    EXECUTE IMMEDIATE 'GRANT CREATE SESSION TO '||my_user;
  7  END;
  8  /

PL/SQL procedure successfully completed.

SQL> conn foo/[email protected]
Connected.
SQL> SHOW USER
USER is "FOO"

Tham khảo nhanh từ tài liệu ,

Thực thi các câu lệnh DDL và SCL trong PL / SQL

Chỉ SQL động có thể thực thi các loại câu lệnh sau trong các đơn vị chương trình PL / SQL:

  • Ngôn ngữ định nghĩa dữ liệu (DDL) các câu lệnh như CREATE , DROP , GRANTREVOKE

  • Ngôn ngữ kiểm soát phiên (SCL) các câu lệnh như ALTER SESSIONSET ROLE

  • TABLE mệnh đề trong SELECT tuyên bố

Một lưu ý nhỏ,

Tạo người dùng và cấp đặc quyền thường là quản trị cơ sở dữ liệu các nhiệm vụ do DBA đảm nhận. Đây không phải là hoạt động thường xuyên được thực hiện qua PL / SQL chương trình. DBA tạo người dùng và cấp các đặc quyền cần thiết dưới dạng hoạt động một lần.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Máy khách Oracle 32-bit trên Máy chủ Windows Đã chạy Máy chủ Cơ sở dữ liệu Oracle 64-bit

  2. Các thủ tục được lưu trữ trên SQL Server từ Oracle®

  3. Thu thập hàng loạt vào và thực hiện ngay lập tức trong Oracle

  4. PRVG-2027 Chủ sở hữu tệp không nhất quán giữa các nút

  5. Cách xử lý chính xác ngày tháng trong các ràng buộc truy vấn