PLS-00103:Menemukan simbol "BUAT" saat mengharapkan salah satu dari yang berikut:
Kesalahan di atas adalah karena Anda menggunakan DDL di dalam PL/SQL . Kamu tidak bisa melakukan itu. Anda harus (ab) menggunakan EKSEKUSI SEGERA untuk mengeluarkan pernyataan DDL di PL/SQL .
Misalnya,
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"
Referensi cepat dari dokumentasi ,
Mengeksekusi Pernyataan DDL dan SCL di PL/SQL
Hanya SQL dinamis dapat mengeksekusi jenis pernyataan berikut dalam unit program PL/SQL:
Bahasa definisi data (DDL) pernyataan seperti
CREATE
,DROP
,GRANT
, danREVOKE
Bahasa kontrol sesi (SCL) pernyataan seperti
ALTER SESSION
danSET ROLE
TABLE
klausa dalamSELECT
pernyataan
Sebagai catatan tambahan,
Membuat pengguna dan memberikan hak istimewa biasanya administrasi basis data tugas yang ditangani oleh DBA. Ini bukan aktivitas yang sering dilakukan melalui PL/SQL program. DBA membuat pengguna dan memberikan hak istimewa yang diperlukan sebagai aktivitas satu kali.