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/example@sqldat.com
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, danREVOKEBahasa kontrol sesi (SCL) pernyataan seperti
ALTER SESSIONdanSET ROLETABLEklausa dalamSELECTpernyataan
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.