2017년 6월 22일 목요일

(Oracle Tip) ORACLE DATE TYPE _탑크리에듀

ORACLE의 DATE TYPE의 크기는 7BYTE라고 한다. 그런데 SELECT LENGTH(HIRE_DATE), LENGTH(SYSDATE) FROM OE.EMPLOYEES WHERE ROWNUM <= 2; 하면 결과는? 8로 나온다. SELECT DUMP(hire_date, 10), hire_date, DUMP(SYSDATE, 10), SYSDATE FROM OE.EMPLOYEES WHERE ROWNUM <= 2; Typ=12 Len=7: 120,107,6,21,1,1,1 2007-06-21 Typ=13 Len=8: 223,7,4,3,10,52,5,0 2015-04-03 10:52:05 Typ=12 Len=7: 120,107,6,21,1,1,1 2007-06-21 Typ=13 Len=8: 223,7,4,3,10,52,5,0 2015-04-03 10:52:05 위 같이 나온다. SYSDATE와 TABLE의 COLUMN 크기가 다르다. 8과 7로 나온다. SYSDATE 맨 마지막 BYTE 사용하지 않는다고 나온다. DUMP를 보면 hire_date(TABLE COLUMN)의 경우 120,107이라 나오는데 앞 1을 뺀 20+07해서 2007이고 다음 월,일 시각,분,초 일건데 DEFAULT 값이 1이다 실제는 0으로 표시 된다. SYSDATE 경우 223, 7 인데 256*7=1792 1792+223=2015가 된다. 즉 2 BYTE는 256의 배수이고 1번째 BYTE 수를 더하면 해당 년도가 나온다. 그 다음은 월,일,시각,분,초 순이다. 제일 마지막의 8BYTE는 사용하지 않는다고 한다. 참고 바랍니다.

댓글 없음:

댓글 쓰기