메뉴 건너뛰기

Korea Oracle User Group

Admin

테이블 컬럼의 Default 값에 대한 흔적은 Dictionary 계속 남게 된다.

 

금일 지인의 질문에 답하다 알게된 사실이 있다.

테이블에 한번 설정된 Default 값은 NULL이나 ''로 대체할 수 있을 뿐이지 지울 수는 없다라는 사실이다.

 

테스트 케이스를 확인해 보겠다.

테스트 환경을 먼저 만들어 보자.

 

kwan@testdb> create table test
  2  (col1 varchar2(10) default 'AAAA',
  3   col2 varchar2(10));
  
Table created.

kwan@testdb> insert into test values ('11111','1111');

1 row created.

kwan@testdb> insert into test values ('22222','222222');

1 row created.

kwan@testdb> insert into test(col2) values ('333333');

1 row created.

kwan@testdb> commit;

Commit complete.

kwan@testdb> select * from test;

COL1       COL2
---------- ----------
11111      1111
22222      222222
AAAA       333333

3 rows selected.

 

먼저 Dictionary 정보를 확인해 보자

 

kwan@testdb> SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_DEFAULT FROM DBA_TAB_COLUMNS WHERE OWNER = 'KWAN';

OWNER      TABLE_NAME  COLUMN_NAME    DATA_DEFAULT
---------- ----------- -------------- ------------
KWAN       TEST        COL1           'AAAA'
KWAN       TEST        COL2 

2 rows selected.

 

DBA_TAB_COLUMNS 뷰의 DATA_DEFAULT 컬럼에 default 값에 대한 정보가 등록된 내용을 확인할 수 있다.

 

이제 default 설정에 대해 변경을 하고 내용을 살펴 보자

 

kwan@testdb> ALTER TABLE TEST MODIFY (COL1 DEFAULT '');

Table altered.

kwan@testdb> SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_DEFAULT FROM DBA_TAB_COLUMNS WHERE OWNER = 'KWAN';

OWNER      TABLE_NAME COLUMN_NAME DATA_DEFAULT
---------- ---------- ----------- ------------
KWAN       TEST       COL1        ''
KWAN       TEST       COL2

2 rows selected.

kwan@testdb> ALTER TABLE TEST MODIFY (COL1 DEFAULT NULL);

Table altered.

kwan@testdb> SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_DEFAULT FROM DBA_TAB_COLUMNS WHERE OWNER = 'KWAN';

OWNER      TABLE_NAME COLUMN_NAME DATA_DEFAULT
---------- ---------- ----------- -------------
KWAN       TEST       COL1        NULL
KWAN       TEST       COL2

2 rows selected.

kwan@testdb> ALTER TABLE TEST MODIFY (COL1 VARCHAR2(10));

Table altered.

kwan@testdb> SELECT OWNER,TABLE_NAME,COLUMN_NAME,DATA_DEFAULT FROM DBA_TAB_COLUMNS WHERE OWNER = 'KWAN';

OWNER      TABLE_NAME COLUMN_NAME DATA_DEFAULT
---------- ---------- ----------- ------------
KWAN       TEST       COL1        NULL
KWAN       TEST       COL2

2 rows selected.

kwan@testdb> 

 

DATA_DEFAULT 컬럼에서 정보 자체가 없어질거라 예상했었지만 위와 같이 사라지지는 않는다.

 

관련 내용에 대한 문구가 오라클 매뉴얼 상에 있다....

역시 친절한 오라클 매뉴얼이군요.... (오라클 매뉴얼 상에 ALTER TABLE 내용에 아래 내용이 담겨 있습니다.)

 

Note:

If a column has a default value, then you cannot modify the column so that it has no default value. However, you can modify the column to behave as if it has no default value by changing the default value to NULL. If a column has ever had a default value assigned to it, then the DATA_DEFAULT column of the USER_TAB_COLUMNS data dictionary view will always display either a default value or NULL.

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
34 Windows 접속 에러 ORA-12638 [1] file Talros 2024.02.14 54
33 수집된 통계가 바로 반영되지 않고 원할 때 반영하도록 하는 방식 명품관 2023.04.04 223
32 Result Cache(oracle11g NF) [6] ocm10gr2 2016.03.14 249
31 mbr(multi block read) 과 sbr(single block read) 사이에 과연 어떤 방식을 선택해야 할까요? [1] 명품관 2022.09.16 299
30 ORA-28014: Cannot Drop Administrative Users 에러 현상 [1] 명품관 2023.03.27 340
29 default 값을 포함한 컬럼 추가시 오라클 버전별 개선 사항 [1] 명품관 2023.01.17 437
28 Python 을 이용해 파일 업로드 해 보기 [1] file Talros 2023.04.19 490
27 SQL Plan Management(SPM) - 2 DBMS_SPM.CONFIG로 필터링 file 명품관 2020.03.26 551
26 ORA-3136 inbound connection time out & JDBC Io exception: Connection reset [1] Talros 2023.02.24 594
25 SQL Plan Management(SPM) - 3 Manual Plan Capture 명품관 2020.06.01 614
24 OS 터미널 접속 없이 오라클 접속을 통해 OS CPU 사용율 모니터링 하기 [3] file 명품관 2020.12.22 780
23 Oracle VMSTAT을 이용한 CPU 사용량 활용법 에밀리오 2016.07.14 872
22 DB에 생성된 ROLE의 생성 정보 확인 [2] 명품관 2016.05.31 897
21 SQL Plan Management(SPM) - 1 파라미터의 기능 확인 명품관 2020.03.19 907
20 External Table 기능을 사용해 파일 읽기 명품관 2017.04.05 947
19 RECO 프로세스 트레이스 발생 하면서 ORA-02019 에러 발생시 명품관 2021.01.12 951
18 Active Session History를 이용한 TOP SQL 분석 (GV$ACTIVE_SESSION_HISTORY) 에밀리오 2016.07.12 1173
17 DB option Enable / Disable 정리 방법 - Mos 참고 file 우뽕 2021.01.31 1186
16 Schema password 재 사용 불가능 하게 하기 [1] Talros 2022.01.26 1193
15 [12cR2 이상] 오브젝트 이름 30자이상 사용 가능 우뽕 2020.01.22 1389
위로