티스토리 뷰

Schema   : user, object

      ^

tablespace

     ^

datafile

 

 

Schema

DB용어 : DDL로 설계된 내용

Oracle용어 : DB객체(들)

실제 Oracle용어 :  객체를 소유한 유저(들)

 

 

 Data Types in Tables

unicode : NCHAR, NVARCHAR2

old : long, long raw            2G사용 제한

new : BLOB, CLOB, NCLOB, BFILE         4G사용 제한

 

 

 

DB char셋 보는 방법

V$nls_paraments 에서 검색

 

 

Constraint States

NOVALIDATE  : 이미 들어있는  값은 무시하고 새로 입력되는 값에 대해서만 constraint 적용

VALIDATE : 모든 값에 constraint 적용

 

ex)

 alter table e3 disable validate constraint e3_fk;

 alter table e3 enable validate constraint e3_fk;

 

 

exceptions 테이블 사용

 

utlexcpt.sql ===> 예외(constraint를 enable 하는데 실패하게 하는)를 집어넣을 table생성

 e3테이블에 deptno의 값에 dept테이블의 deptno의 값중에서 없는 값을 집어넣은뒤  constraint를 enable validate 하는 방법

 

sqlplus / as sysdba < utlexcpt.sql

alter table e3 modify constraint e3_fk enable exceptions into exceptions;

 

S SCOTT> desc exceptions
 Name                                                        Null?    Type
 ----------------------------------------------------------- -------- ----------------------------------------
 ROW_ID                                                               ROWID
 OWNER                                                                VARCHAR2(30)
 TABLE_NAME                                                           VARCHAR2(30)
 CONSTRAINT                                                           VARCHAR2(30)

S SCOTT> select * from exceptions
  2  ;

ROW_ID             OWNER                          TABLE_NAME
------------------ ------------------------------ ------------------------------
CONSTRAINT
------------------------------
AAAM2rAAEAAAAGtAAA SCOTT                          E3
E3_FK


S SCOTT> update e3 set deptno=10 where rowid in(select row_id from exceptions);

1 row updated.

 

 sequence

사이클 가능. nocache에서만 지원.

보통 nextval을 사용해서 primary key에 사용됨

 

Temporary Table

삭제가 자동임 : session 이나 transaction 이 끝나면 지워짐

ON COMMIT DELETE ROWS : COMMIT 하면 지워짐

ON COMMIT PRESERVE ROWS : COMMIT 해도 ROW가 남아있음. 즉 SESSION이 끝나야 지워짐

 

S SCOTT> CREATE GLOBAL TEMPORARY TABLE ET AS SELECT * FROM EMP;

S SCOTT> SELECT COUNT(*) FROM ET;

  COUNT(*)
----------
         0

 


S SCOTT> CREATE GLOBAL TEMPORARY TABLE ET2 ON COMMIT PRESERVE ROWS  AS SELECT * FROM EMP;

S SCOTT> SELECT COUNT(*) FROM ET2;

  COUNT(*)
----------
        14

 

 

S SCOTT> CREATE GLOBAL TEMPORARY TABLE ET3 ON COMMIT DELETE ROWS AS SELECT * FROM EMP;

S SCOTT> SELECT COUNT(*) FROM ET3;

  COUNT(*)
----------
         0

기본값이라서.......필요없음. 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함