问题
PLS-00103: 出现符号 "DROP"在需要下列之一时:
( begin case
declare end 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
原因:Oracle使用游标删除用户和创建用户以及授权时等不能直接drop删除,需要execute immediate加以修饰
删除用户
DECLARE
username varchar2(30);
user_id number;
CURSOR dba_users IS
SELECT username FROM dba_users WHERE username='robot'
FOR UPDATE OF username;
BEGIN
OPEN dba_users;
LOOP
FETCH dba_users INTO username;
EXIT WHEN dba_users%NOTFOUND;
DBMS_OUTPUT.put_line('删除用户:'||username);
execu