PLS-00103:Setkal se se symbolem „VYTVOŘIT“, když očekával jednu z následujících situací:
Výše uvedená chyba je způsobena tím, že používáte DDL uvnitř PL/SQL . To nemůžeš udělat. Musíte (ab)použít PROVEĎ OKAMŽITĚ k vydávání výkazů DDL v PL/SQL .
Například,
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"
Rychlý odkaz z dokumentace ,
Provádění příkazů DDL a SCL v PL/SQL
Pouze dynamické SQL může provádět následující typy příkazů v rámci programových jednotek PL/SQL:
Jazyk definice dat (DDL) příkazy jako
CREATE
,DROP
,GRANT
aREVOKE
Jazyk ovládání relace příkazy (SCL), jako je
ALTER SESSION
aSET ROLE
TABLE
klauzule vSELECT
prohlášení
Na okraj,
Vytváření uživatelů a udělování oprávnění je obvykle správa databáze úkoly, o které se stará DBA. Není to častá aktivita prováděná přes PL/SQL program. DBA vytváří uživatele a uděluje potřebná oprávnění jako jednorázovou aktivitu.