Oracle에서는 drop 문을 사용하여 스키마를 삭제할 수 있습니다. 구문은 "drop user username cascade;"입니다. drop 문은 스키마를 포함한 테이블의 구조를 삭제하는 데 사용됩니다. 데이터베이스 객체이며 사용자로 이해될 수도 있습니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
스키마 삭제 구문은 다음과 같습니다.
drop user username cascade;
예제는 다음과 같습니다.
1) 사용자의 기본 테이블스페이스와 임시 테이블스페이스 보기
set lines 300 col username for a30 select username ,default_tablespace,TEMPORARY_TABLESPACE from dba_users where username='MESPRD'; ----------------------------------- USERNAME DEFAULT_TABLESPACE TEMPORAR Y_TABLESPACE MESPRD HTTBS_MESPRD TEMP
2 ) 사용자의 권한과 역할을 확인하세요
select privilege from dba_sys_privs where grantee='SYSADM' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='MESPRD' ); ----------------------------------- PRIVILEGE CREATE CLUSTER CREATE INDEXTYPE CREATE OPERATOR CREATE PROCEDURE CREATE SEQUENCE CREATE SESSION CREATE TABLE CREATE TRIGGER CREATE TYPE
9개 행이 선택되었습니다.
3) 사용자 권한을 부여하는 스크립트를 가져옵니다
select 'grant '||privilege||' to SYSADM;' from (select privilege from dba_sys_privs where grantee='SYSADM' union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SYSADM' ));
4) 스크립트를 실행하여 스키마 아래의 개체를 삭제하는 스크립트를 가져옵니다. mesprd는 삭제할 스키마입니다
connect mesprd/MESPRD spool E:\app\Administrator\del_mesprd.sql; select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='R'; select 'truncate table '||table_name ||';' from user_tables; select 'drop table '||table_name ||' purge;' from user_tables; select 'drop index '||index_name ||';' from user_indexes; select 'drop view ' ||view_name||';' from user_views; select 'drop sequence ' ||sequence_name||';' from user_sequences; select 'drop function ' ||object_name||';' from user_objects where object_type='FUNCTION'; select 'drop procedure '||object_name||';' from user_objects where object_type='PROCEDURE'; select 'drop package '|| object_name||';' from user_objects where object_type='PACKAGE'; select 'drop database link '|| object_name||';' from user_objects where object_type='DATABASE LINK'; spool off;
5) SQLplus는 해당 스키마에 연결하여 위에서 얻은 스크립트
실행 전에 스키마 아래의 객체를 확인하고, 실행 후 다시 스키마 아래의 객체를 확인하세요
@?\E:\app\Administrator\del_mesprd.sql; SQL> select object_type,count(*) from user_objects group by object_type;
6) 데이터베이스에 연결된 세션을 종료합니다
select 'alter system kill session '''||sid||','||serial#||''' immediate;' from v$session where username='MESPRD';
7) 스키마 삭제
drop user MESPRD cascade;
추천 튜토리얼: "오라클 동영상 튜토리얼》
위 내용은 Oracle에서 스키마를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!