- oracle 컬럼 타입 중 숫자, 날짜 등의 byte 사이즈를 구하는 방법 - 사이즈를 구하는 length(글자수), lengthb(byte size), vsize(byte size) 함수의 결과 비교 - 숫자나 날짜 컬럼은 vsize 함수를 사용하여 byte 사이즈를 구할 수 있다 |
테스트 테이블 및 데이터 생성
CREATE TABLE sk.t1
(c1 varchar(100), c2 NUMBER(10), c3 DATE) ;
INSERT INTO sk.t1 values('가나다', 1234, sysdate) ;
INSERT INTO sk.t1 values('ABC', 123456, sysdate) ;
COMMIT ;
SQL> select * from sk.t1 ;
C1 C2 C3
---------- ---------- --------
가나다 1234 23/09/05
ABC 123456 23/09/05
문자 타입 비교
length 는 글자수를 출력함
lengthb, vsize 는 문자의 byte size 를 출력함
SQL> SELECT
c1, LENGTH(c1), lengthb(c1), vsize(c1)
FROM sk.t1 ;
C1 LENGTH(C1) LENGTHB(C1) VSIZE(C1)
---------- ---------- ----------- ----------
가나다 3 9 9
ABC 3 3 3
숫자 타입 비교
length, lengthb 는 숫자를 문자 형태로 변경하여 사이즈를 출력함
vsize 는 실제 숫자 컬럼의 byte size 를 출력함
SQL> SELECT
c2, LENGTH(c2), lengthb(c2), vsize(c2)
FROM sk.t1 ;
2 3
C2 LENGTH(C2) LENGTHB(C2) VSIZE(C2)
---------- ---------- ----------- ----------
1234 4 4 3
123456 6 6 4
날짜 타입 비교
length 함수는 날짜 형식에 따라 결과 값이 달라짐
vsize 는 형식에 날짜 표현 형식에 상관없이 해당 컬럼 타입의 byte size 를 보여준다
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD' ; -- 날짜 형식 변경
Session altered.
SQL> SELECT
to_char(c3,'YYYYMMDD HH24MISS') char_c3
, LENGTH(to_char(c3,'YYYYMMDD HH24MISS')) char_length
, lengthb(to_char(c3,'YYYYMMDD HH24MISS')) char_lengthb
, vsize(to_char(c3,'YYYYMMDD HH24MISS')) cahr_vsize
, c3, LENGTH(c3), lengthb(c3), vsize(c3)
FROM sk.t1 ;
CHAR_C3 CHAR_LENGTH CHAR_LENGTHB CAHR_VSIZE C3 LENGTH(C3) LENGTHB(C3) VSIZE(C3)
--------------- ----------- ------------ ---------- -------- ---------- ----------- ----------
20230905 192542 15 15 15 20230905 8 8 7
20230905 195727 15 15 15 20230905 8 8 7
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYYMMDD HH24MISS'; -- 날짜 형식 변경
Session altered.
SQL> SELECT
to_char(c3,'YYYYMMDD HH24MISS') char_c3
, LENGTH(to_char(c3,'YYYYMMDD HH24MISS')) char_length
, lengthb(to_char(c3,'YYYYMMDD HH24MISS')) char_lengthb
, vsize(to_char(c3,'YYYYMMDD HH24MISS')) cahr_vsize
, c3, LENGTH(c3), lengthb(c3), vsize(c3)
FROM sk.t1 ;
CHAR_C3 CHAR_LENGTH CHAR_LENGTHB CAHR_VSIZE C3 LENGTH(C3) LENGTHB(C3) VSIZE(C3)
--------------- ----------- ------------ ---------- --------------- ---------- ----------- ----------
20230905 192542 15 15 15 20230905 192542 15 15 7
20230905 195727 15 15 15 20230905 195727 15 15 7
'DBMS > ORACLE' 카테고리의 다른 글
오라클 EMP, DEPT 샘플 테이블 생성 스크립트 (0) | 2023.09.15 |
---|---|
오라클 null 처리 함수(nvl, nvl2, nullif, coalesce) (0) | 2023.09.09 |
Orange, QueryBox 등 쿼리툴에서 xplan 안될 때 해결법 (0) | 2023.08.31 |
리스너에 IP/포트 여러개 등록 (0) | 2023.07.26 |
WITH 이용한 TEMP TABLE 사용 테스트 (0) | 2023.07.21 |
댓글