【发布时间】:2016-02-17 08:12:31
【问题描述】:
我使用 Oracle XE 的唯一目的是开发 PHP 应用程序,而 11g 版本显然失去了 10g 曾经拥有的用于管理用户的 GUI 工具,所以我想准备一个代码 sn-p 来从命令行创建用户.我正在尝试define variables,所以我不需要输入相同的用户名 16 次,但我无法正确使用语法:
DECLARE
my_user VARCHAR2(30) := 'foo';
my_password VARCHAR2(9) := '1234';
BEGIN
CREATE USER my_user IDENTIFIED BY my_password DEFAULT TABLESPACE users;
GRANT CONNECT, RESOURCE TO my_user;
GRANT CREATE DATABASE LINK TO my_user;
GRANT CREATE MATERIALIZED VIEW TO my_user;
GRANT CREATE PROCEDURE TO my_user;
GRANT CREATE PUBLIC SYNONYM TO my_user;
GRANT CREATE ROLE TO my_user;
GRANT CREATE SEQUENCE TO my_user;
GRANT CREATE SYNONYM TO my_user;
GRANT CREATE TABLE TO my_user;
GRANT CREATE TRIGGER TO my_user;
GRANT CREATE TYPE TO my_user;
GRANT CREATE VIEW TO my_user;
GRANT SELECT_CATALOG_ROLE TO my_user;
GRANT SELECT ANY DICTIONARY TO my_user;
END;
/
CREATE USER my_user IDENTIFIED BY my_password DEFAULT TABLESPACE users; * ERROR en línea 5: ORA-06550: line 5, column 2: PLS-00103: Encountered the symbol "CREATE" when expecting one of the following: ( begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
是否禁止在 PL/SQL 块中使用 CREATE USER 语句,或者我只是犯了一个愚蠢的错字?是否必须使用 SQL*Plus 变量?
【问题讨论】:
标签: oracle plsql oracle11g ddl oracle-xe