каскад удаления пользователей в Oracle

Мне нужно удалить конкретного пользователя (у которого могут быть активные сеансы) из пакета без какого-либо взаимодействия с пользователем . Меня не волнуют активные сеансы, и я хочу, чтобы их отбрасывали и откатывали. Для Microsoft SQL я бы выполнил аналогичную задачу с одной строкой:

osql -E -S localhost -b -Q "use master if ((select name from sysdatabases where name='%DB%') is not null) begin alter database [%DB%] set single_user with rollback immediate drop database [%DB%] end"

Как мне сделать это для Oracle (10g XE в Windows)?

Мой текущий пакет:

sqlplus sys/*** as SYSDBA  @delete1.sql >delete.log
sqlplus sys/***@XE as SYSDBA  @delete2.sql >>delete.log

, где delete1.sql:

startup force;
exit;

и delete2.sql:

drop user MYUSER cascade;
exit;

Это чертовски уродливо и занимает слишком много времени по сравнению с долей секунды решения MSSQL.

7
задан UserControl 4 November 2010 в 20:22
поделиться