2020년 7월 20일 월요일

오라클11g 읽기전용 테이블

8.1.7 오라클11g 읽기전용 테이블

n Oracle 11g 이전 버전에서 테이블은 다른 사용자에게 SELECT 오브젝트 권한을 주는 경우에만 읽기전용으로 운영이 가능했고, 테이블을 생성한 소유자(OWNER)는 테이블에 Read/Write 권한이 있어 이 테이블을 읽기전용으로 운영하는 것은 불가능 했다.

n 오라클 11g에서부터 “ALTER TABLE 테이블명 READ ONLY” 명령으로 읽기전용 테이블로 운영하는 것이 가능해졌다.

n 읽기 전용 모드에서 테이블에 대한 아래 조작은 가능하다.

Select

Management indexes, constraints

Dropping and deallocation of unused columns

Renaming and moving of the table

Altering the table for physical property changes, row movement, and shrinking the segment

Drop table

n 읽기 전용 모드에서 테이블에 대한 아래 조작은 불가능 하다.

DML on table or any table partitions

Truncation of table

Select for update

Adding, removing, renaming, dropping, or setting a column to unused

Dropping a partition or sub partition belonging to the table

Online redefinition

Flashback on the table

[형식]

ALTER TABLE table_name READ ONLY;

ALTER TABLE table_name READ WRITE;

SQL> CREATE TABLE readtest

AS

SELECT 1 AS ID, '오라클자바커뮤니티' AS NAME FROM DUAL;

테이블이 생성되었습니다.

SQL> SELECT * FROM readtest;

ID NAME

---------- ------------------

1 오라클자바커뮤니티

SQL> INSERT INTO readtest VALUES (2, '2길동');

1 개의 행이 만들어졌습니다.

SQL> COMMIT;

커밋이 완료되었습니다.

SQL> ALTER TABLE readtest READ ONLY;

테이블이 변경되었습니다.

SQL> INSERT INTO readtest VALUES (3, '3길동');

INSERT INTO readtest VALUES (3, '3길동')

*

1행에 오류:

ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다

SQL> DELETE FROM readtest;

DELETE FROM readtest

*

1행에 오류:

ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다

SQL> TRUNCATE TABLE readtest;

TRUNCATE TABLE readtest

*

1행에 오류:

ORA-12081: "SCOTT"."READTEST" 테이블에 작업을 갱신하는 것이 허용되지 않습니다

SQL> ALTER TABLE readtest READ WRITE;

SQL> DELETE FROM readtest;

2 행이 삭제되었습니다.

SQL> COMMIT;

SQL> ALTER TABLE readtest READ ONLY;

SQL> DROP TABLE readtest;

-- 읽기전용 테이블 이라도 DROP TABLE은 가능하다.

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...