如何在Oracle RDBMS中通过掩码删除用户

Pet*_*iuk 3 sql database oracle plsql

我想删除所有在其名称开头都有'WIN'的用户(例如,'WIN $ DOWS').是否有可能写出像follownig这样的东西?

drop user where name like 'WIN%'
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 6

DROP USER语句不支持WHERE子句,更不用说LIKE和通配符.

您需要从DBA_USERS中获取匹配的用户列表,并迭代该列表:

--Bye Users!
FOR i IN (SELECT t.username
            FROM DBA_USERS t
           WHERE t.username LIKE 'WIN%') LOOP
  EXECUTE IMMEDIATE 'drop user '|| i.username ||'';
END LOOP;
Run Code Online (Sandbox Code Playgroud)

  • 您可能还需要/想要在最后添加`CASCADE` (2认同)