Ну ваша строка темы и ваш примерный курсор не совпадают с началом. Также вы не можете выпускать DDL из PL / SQL. Вы должны использовать выполнить немедленно. Смотрите руководство по PL / SQL.
- -
Таким образом, чтобы найти пользователей, которым назначена определенная роль, вы можете использовать
select grantee from dba_role_privs where granted_role='ROLE_NAME'
и в курсоре вы используете что-то вроде
execute immediate 'drop user '||rec.username||' cascade;';
однако зачем использовать PL / SQL для этого? Если это одноразовое усилие, тогда просто используйте SQL для генерации операторов отбрасывания, спулингируйте результат, отредактируйте, чтобы установить параметры SQLPlus, такие как «set echo on», затем запустите сгенерированный скрипт?
- - Марк Д Пауэлл -