Home » SQL & PL/SQL » SQL & PL/SQL » PL/SQL Error
PL/SQL Error [message #38991] Tue, 04 June 2002 10:50 Go to next message
Matt
Messages: 43
Registered: September 1999
Member
I've recently started Oracle programming. I'm trying to create a simple procedure to creat a user using a stored variable. However, because I'm fairly new at SQL statement's I've run into an error. Please have a look and tell me what I've done wrong.

Thanks

DECLARE
v_userid VARCHAR2 (9) DEFAULT 'User1';
v_passwrd VARCHAR2 (9) DEFAULT 'User1';

BEGIN

CREATE USER v_userid
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
IDENTIFIED BY v_passwrd ;
GRANT viewA viewB viewC TO v_userid;

ALTER USER v_userid DEFAULT ROLE roleA roleB roleC FROM DBA_USERS
WHERE USERNAME <> 'SYS' AND USERNAME <> 'SYSTEM';

END;
/
Re: PL/SQL Error [message #38992 is a reply to message #38991] Tue, 04 June 2002 11:53 Go to previous message
Todd Barry
Messages: 4819
Registered: August 2001
Senior Member
You cannot directly execute DDL in PL/SQL. However, you can do this using dynamic SQL. Here is an 8i example:

execute immediate
  'create user ' || v_userid ||
  ' identified by ' || v_passwrd ||
  ' default tablespace users' ||
  ' temporary tablespace temp';
 
execute immediate 'grant ... to ' || v_userid;
Previous Topic: inserting value into LONG column
Next Topic: Help with column datatype conversion
Goto Forum:
  


Current Time: Thu Apr 25 15:00:38 CDT 2024