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
,GRANT
vàREVOKE
Ngôn ngữ kiểm soát phiên (SCL) các câu lệnh như
ALTER SESSION
vàSET ROLE
TABLE
mệnh đề trongSELECT
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.