>  기사  >  데이터 베이스  >  Oracle에서 스키마를 삭제하는 방법

Oracle에서 스키마를 삭제하는 방법

WBOY
WBOY원래의
2022-05-25 17:47:254586검색

Oracle에서는 drop 문을 사용하여 스키마를 삭제할 수 있습니다. 구문은 "drop user username cascade;"입니다. drop 문은 스키마를 포함한 테이블의 구조를 삭제하는 데 사용됩니다. 데이터베이스 객체이며 사용자로 이해될 수도 있습니다.

Oracle에서 스키마를 삭제하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle에서 스키마를 삭제하는 방법

스키마 삭제 구문은 다음과 같습니다.

drop user username cascade;

Oracle에서 스키마를 삭제하는 방법

예제는 다음과 같습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.