데이터 타입 변환

Tibero에서 비교, 연산등을 위한 SQL 데이터 타입 변환 방법을 설명합니다.

데이터 타입은 사용자가 명시적으로 할 수도 있고, 필요에 의하여 암시적으로 이루어지기도 합니다.

명시적 타입 변환

사용자가 SQL 변환 함수를 직접 사용하여 타입을 변환할 수 있습니다.

다음은 타입 변환 함수목록입니다(행은 변환 전 타입, 열은 변환 후 타입입니다).

[표 1] 명시적 타입 변환 (1)

from \ to
CHAR, VARCHAR2, NCHAR, NVARCHAR2
NUMBER
날짜, 시간 및 인터벌

CHAR, VARCHAR2, NCHAR, NVARCHAR2

TO_CHAR, TO_NCHAR

TO_NUMBER

TO_DATE, TO_TIME, TO_TIMESTAMP, TO_TIMESTAMP_TZ, TO_DSINTERVAL, TO_YMINTERVAL

NUMBER

TO_CHAR, TO_NCHAR

-

NUMTOYMINTERVAL, NUMTODSINTERVAL

날짜, 시간 및 인터벌

TO_CHAR, TO_NCHAR

X

-

RAW

RAWTOHEX

X

X

ROWID

ROWIDTOCHAR

X

X

LONG, LONG RAW

LONG_TO_CHAR

X

X

CLOB, NCLOB, BLOB

TO_CHAR, TO_NCHAR

X

X

BINARY_FLOAT

TO_CHAR, TO_NCHAR

TO_NUMBER

X

BINARY_DOUBLE

TO_CHAR, TO_NCHAR

TO_NUMBER

X

JSON

TO_CHAR

X

X

[표 2] 명시적 타입 변환 (2)

from \ to
BINARY_DOUBLE
RAW
ROWID
LONG, LONG RAW

CHAR, VARCHAR2, NCHAR,

TO_BINARY_DOU BLE

HEXTORAW

CHARTOROWID

LONG_TO_CHAR

NVARCHAR2

NUMBER

TO_BINARY_DOUBLE

X

X

X

날짜, 시간 및 인터벌

X

X

X

X

RAW

-

-

X

X

ROWID

X

X

-

X

LONG, LONG RAW

X

X

X

-

CLOB, NCLOB, BLOB

X

X

X

X

BINARY_FLOAT

X

X

X

X

BINARY_DOUBLE

X

X

X

X

JSON

X

X

X

X

[표 3] 명시적 타입 변환 (3)

from \ to
CLOB, NCLOB, BLOB
BINARY_FLOAT
BINARY_DOUBLE
JSON

CHAR, VARCHAR2, NCHAR, NVARCHAR2

TO_CLOB

TO_BINARY_FLOAT

TO_BINARY_DOUBLE

X

NUMBER

X

TO_BINARY_FLOAT

TO_BINARY_DOUBLE

X

날짜, 시간 및 인터벌

X

X

X

X

RAW

TO_BLOB

X

X

X

ROWID

X

X

X

X

LONG, LONG RAW

TO_LOB

X

X

X

CLOB, NCLOB, BLOB

TO_CLOB

X

X

X

BINARY_FLOAT

X

TO_BINARY_FLOAT

TO_BINARY_DOUBLE

X

BINARY_DOUBLE

X

TO_BINARY_FLOAT

TO_BINARY_DOUBLE

X

JSON

X

X

X

-

암시적 타입 변환

사용자가 명시적으로 타입을 변환하지 않더라도, 필요하다면 암시적으로 타입을 변환하여 줍니다.

암시적 타입 변환이 필요한 경우는 아래와 같습니다.

  • 컬럼에 다른 타입의 데이터를 INSERT, UPDATE하는 경우

  • 조건문에서 비교하는 양쪽 값이 다른 타입인 경우

다음은 암시적 타입 변환 관계입니다(행은 변환 전 타입, 열은 변환 후 타입입니다).

[표 4] 암시적 타입 변환 (1)

NUMBER
CHAR
VARCHAR2
RAW
DATE
TIME
TIMESTAMP

NUMBER

-

O

O

X

X

X

X

CHAR

O

-

O

O

O

O

O

VARCHAR2

O

O

-

O

O

O

O

RAW

X

O

O

-

X

X

X

DATE

X

O

O

X

-

X

O

TIME

X

O

O

X

X

-

X

TIMESTAMP

X

O

O

X

O

X

-

INTERVAL YEAR TO MONTH

X

O

O

X

X

X

X

INTERVAL DAY TO SECOND

X

O

O

X

X

X

X

LONG

X

X

X

X

X

X

X

LONG RAW

X

X

X

X

X

X

X

BLOB

X

X

X

O

X

X

X

CLOB

X

O

O

X

X

X

X

ROWID

X

O

O

X

X

X

X

NCHAR

O

O

O

O

O

O

O

NVARCHAR2

O

O

O

O

O

O

O

NCLOB

X

O

O

X

X

X

X

TIMESTAMP WITH TIME ZONE

X

O

O

X

O

X

O

TIMESTAMP WITH LOCAL TIMEZONE

X

O

O

X

O

X

O

BINARY_FLOAT

O

O

O

X

X

X

X

BINARY_DOUBLE

O

O

O

X

X

X

X

JSON

X

O

O

X

X

X

X

[표 5] 암시적 타입 변환 (2)

INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
LONG
LONG RAW
BLOB
CLOB
ROWID

NUMBER

X

X

O

X

X

O

X

CHAR

O

O

O

O

O

O

O

VARCHAR2

O

O

O

O

O

O

O

RAW

X

X

O

O

O

O

X

DATE

X

X

X

X

X

X

X

TIME

X

X

X

X

X

X

X

TIMESTAMP

X

X

O

X

X

X

X

INTERVAL YEAR TO MONTH

-

X

O

X

X

X

X

INTERVAL DAY TO SECOND

X

-

O

X

X

X

X

LONG

X

X

-

X

X

X

X

LONG RAW

X

X

X

-

X

X

X

BLOB

X

X

O

X

-

X

X

CLOB

X

X

O

X

X

-

X

ROWID

X

X

O

X

X

X

-

NCHAR

O

O

O

O

X

O

O

NVARCHAR2

O

O

O

O

X

O

O

NCLOB

X

X

O

X

X

O

X

TIMESTAMP WITH TIMEZONE

X

X

O

X

X

X

X

TIMESTAMP WITH LOCAL TZ

X

X

O

X

X

X

X

BINARY_FLOAT

X

X

O

X

X

X

X

BINARY_DOUBLE

X

X

O

X

X

X

X

JSON

X

X

X

O

X

O

X

[표 6] 암시적 타입 변환 (3)

NCHAR
NVARCHAR2
NCLOB
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIME ZONE
BINARY_FLOAT
BINARY_DOUBLE
JSON

NUMBER

O

O

X

X

X

O

O

X

CHAR

O

O

O

O

O

O

O

O

VARCHAR2

O

O

O

O

O

O

O

O

RAW

O

O

X

X

X

X

X

X

DATE

O

O

X

O

O

X

X

X

TIME

O

O

X

X

X

X

X

X

TIMESTAMP

O

O

X

O

O

X

X

X

INTERVAL YEAR TO MONTH

O

O

X

X

X

X

X

X

INTERVAL DAY TO SECOND

O

O

X

X

X

X

X

X

LONG

X

X

X

X

X

X

X

X

LONG RAW

X

X

X

X

X

X

X

X

BLOB

X

X

X

X

X

X

X

O

CLOB

O

O

X

O

O

X

X

O

ROWID

O

O

X

X

X

X

X

X

NCHAR

-

O

O

O

O

O

O

O

NVARCHAR2

O

-

O

O

O

O

O

O

NCLOB

O

O

-

X

X

X

X

O

TIMESTAMP WITH TZ

O

O

X

-

O

X

X

X

TIMESTAMP WITH LOCAL TZ

O

O

X

O

-

X

X

X

BINARY_FLOAT

O

O

X

X

X

-

O

X

BINARY_DOUBLE

O

O

X

X

X

O

-

X

JSON

X

X

X

X

X

X

X

-

타입비교

다음은 두 값에 대한 타입을 비교할 때 어느쪽 타입으로 맞춰서 비교하는지를 나타내는 표입니다.

[표 7] 타입비교 (1)

NUMBER

NUMBER

NUMBER

NUMBER

VARCHAR2

CHAR

NUMBER

CHAR

VARCHAR2

CHAR

VARCHAR2

NUMBER

VARCHAR2

VARCHAR2

VARCHAR2

RAW

VARCHAR2

CHAR

VARCHAR2

RAW

DATE

X

DATE

DATE

VARCHAR2

TIME

X

TIME

TIME

VARCHAR2

TIMESTAMP

VARCHAR2

TIMESTAMP

TIMESTAMP

VARCHAR2

INTERVAL YEAR TO MONTH

VARCHAR2

INTERVAL Y TO MONTH

INTERVAL Y TO MONTH

VARCHAR2

INTERVAL DAY TO SECOND

VARCHAR2

INTERVAL D TO SEC

INTERVAL D TO SEC

VARCHAR2

LONG

X

LONG

LONG

VARCHAR2

LONG RAW

VARCHAR2

LONG

LONG

VARCHAR2

BLOB

X

X

X

X

CLOB

X

CLOB

CLOB

CLOB

ROWID

VARCHAR2

ROWID

ROWID

VARCHAR2

NCHAR

NUMBER

NCHAR

NVARCHAR2

NCHAR

NVARCHAR2

NUMBER

NVARCHAR2

NVARCHAR2

NVARCHAR2

NCLOB

X

NCLOB

NCLOB

NCLOB

TIMESTAMP WITH TIME ZONE

VARCHAR2

TIMESTAMP

TIMESTAMP

VARCHAR2

TIMESTAMP WITH LOCAL TIME ZONE

VARCHAR2

TIMESTAMP

TIMESTAMP

VARCHAR2

BINARY_FLOAT

BINARY_FLOAT

BINARY_FLOAT

BINARY_FLOAT

VARCHAR2

BINARY_DOUBLE

BINARY_DOUBLE

BINARY_DOUBLE

BINARY_DOUBLE

VARCHAR2

JSON

X

X

X

X

[표 8] 타입비교 (2)

From \ To
DATE
TIME
TIMESTAMP
INTERVAL YEAR TO MONTH

NUMBER

X

X

VARCHAR2

VARCHAR2

CHAR

DATE

TIME

TIMESTAMP

INTERVAL YEAR TO MONTH

VARCHAR2

DATE

TIME

TIMESTAMP

INTERVAL YEAR TO MONTH

RAW

VARCHAR2

VARCHAR2

VARCHAR2

VARCHAR2

DATE

DATE

VARCHAR2

TIMESTAMP

VARCHAR2

TIME

VARCHAR2

TIME

VARCHAR2

VARCHAR2

TIMESTAMP

TIMESTAMP

VARCHAR2

TIMESTAMP

VARCHAR2

INTERVAL YEAR TO MONTH

VARCHAR2

VARCHAR2

VARCHAR2

INTERVAL YEAR TO MONTH

INTERVAL DAY TO SECOND

VARCHAR2

VARCHAR2

VARCHAR2

INTERVAL DAY TO SECOND

LONG

X

X

X

X

LONG RAW

VARCHAR2

VARCHAR2

VARCHAR2

VARCHAR2

BLOB

X

X

X

X

CLOB

X

X

X

X

ROWID

VARCHAR2

VARCHAR2

VARCHAR2

VARCHAR2

NCHAR

DATE

TIME

TIMESTAMP

INTERVAL YEAR TO MONTH

NVARCHAR2

DATE

TIME

TIMESTAMP

INTERVAL YEAR TO MONTH

NCLOB

X

X

X

X

TIMESTAMP WITH TIME ZONE

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

VARCHAR2

TIMESTAMP WITH LOCAL TZ

TIMESTAMP

VARCHAR2

TIMESTAMP WITH LOCAL TIMEZONE

VARCHAR2

BINARY_FLOAT

X

X

VARCHAR2

VARCHAR2

BINARY_DOUBLE

X

X

VARCHAR2

VARCHAR2

JSON

X

X

X

X

[표 9] 타입비교 (3)

INTERVAL DAY TO SECOND
LONG
LONG RAW
BLOB

DATE

VARCHAR2

X

VARCHAR2

X

TIME

VARCHAR2

X

VARCHAR2

X

TIMESTAMP

VARCHAR2

X

VARCHAR2

X

INTERVAL YEAR TO MONTH

VARCHAR2

X

VARCHAR2

X

INTERVAL DAY TO SECOND

VARCHAR2

X

VARCHAR2

X

LONG

X

LONG

LONG

X

LONG RAW

VARCHAR2

LONG

LONG RAW

X

BLOB

X

X

X

BLOB

CLOB

X

LONG

LONG

X

ROWID

VARCHAR2

ROWID

VARCHAR2

X

NCHAR

INTERVAL DAY TO SECOND

X

X

X

NVARCHAR2

INTERVAL DAY TO SECOND

X

X

X

NCLOB

X

X

X

X

TIMESTAMP WITH TIME ZONE

VARCHAR2

X

VARCHAR2

X

TIMESTAMP WITH LOCAL TIME ZONE

VARCHAR2

X

VARCHAR2

X

BINARY_FLOAT

VARCHAR2

X

VARCHAR2

X

BINARY_DOUBLE

VARCHAR2

X

VARCHAR2

X

JSON

X

X

X

X

[표 10] 타입비교 (4)

From \ To
CLOB
ROWID
NCHAR
NVARCHAR2

NUMBER

X

VARCHAR2

NUMBER

NUMBER

CHAR

CLOB

ROWID

NCHAR

NVARCHAR2

VARCHAR2

CLOB

ROWID

NCHAR

NVARCHAR2

RAW

CLOB

VARCHAR2

NCHAR

NVARCHAR2

DATE

X

VARCHAR2

DATE

DATE

TIME

X

VARCHAR2

TIME

TIME

TIMESTAMP

X

VARCHAR2

TIMESTAMP

TIMESTAMP

INTERVAL YEAR TO MONTH

X

VARCHAR2

INTERVAL YEAR TO MONTH

INTERVAL YEAR TO MONTH

INTERVAL DAY TO SECOND

X

VARCHAR2

INTERVAL DAY TO SECOND

INTERVAL DAY TO SECOND

LONG

LONG

ROWID

X

X

LONG RAW

LONG

VARCHAR2

X

X

BLOB

X

X

X

X

CLOB

CLOB

ROWID

CLOB

CLOB

ROWID

ROWID

ROWID

ROWID

ROWID

NCHAR

CLOB

ROWID

NCHAR

NVARCHAR2

NVARCHAR2

CLOB

ROWID

NCHAR

NVARCHAR2

NCLOB

NCLOB

X

NCLOB

NCLOB

TIMESTAMP WITH TZ

X

VARCHAR2

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH LOCAL TZ

X

VARCHAR2

TIMESTAMP

TIMESTAMP

BINARY_FLOAT

X

VARCHAR2

BINARY_FLOAT

BINARY_FLOAT

BINARY_DOUBLE

X

VARCHAR2

BINARY_DOUBLE

BINARY_DOUBLE

JSON

X

X

X

X

[표 11] 타입비교 (5)

TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIMEZONE
BINARY_FLOAT
BINARY_DOUBLE

NUMBER

VARCHAR2

BINARY_FLOAT

BINARY_DOUBLE

X

CHAR

TIMESTAMP WITH TZ

TIMESTAMP WITH LOCAL TZ

BINARY_FLOAT

BINARY_DOUBLE

VARCHAR2

TIMESTAMP WITH TZ

TIMESTAMP WITH LOCAL TZ

BINARY_FLOAT

BINARY_DOUBLE

RAW

NCLOB

NCLOB

NCLOB

NCLOB

DATE

TIMESTAMP WITH TZ

TIMESTAMP WITH LOCAL TZ

X

X

TIME

VARCHAR2

VARCHAR2

X

X

TIMESTAMP

TIMESTAMP WITH TZ

TIMESTAMP WITH LOCAL TZ

VARCHAR2

VARCHAR2

INTERVAL YEAR TO MONTH

VARCHAR2

VARCHAR2

VARCHAR2

VARCHAR2

INTERVAL DAY TO SECOND

VARCHAR2

VARCHAR2

VARCHAR2

VARCHAR2

LONG

X

X

X

X

LONG RAW

VARCHAR2

X

X

VARCHAR2

BLOB

X

X

X

X

CLOB

X

X

X

X

ROWID

VARCHAR2

X

X

ROWID

NCHAR

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

BINARY_FLOAT

BINARY_DOUBLE

NVARCHAR2

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

BINARY_FLOAT

BINARY_DOUBLE

NCLOB

X

X

X

X

TIMESTAMP WITH TZ

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE

VARCHAR2

VARCHAR2

TIMESTAMP WITH LTZ

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

VARCHAR2

VARCHAR2

BINARY_FLOAT

VARCHAR2

VARCHAR2

BINARY_FLOAT

BINARY_DOUBLE

BINARY_DOUBLE

VARCHAR2

VARCHAR2

BINARY_DOUBLE

BINARY_DOUBLE

JSON

X

X

X

X

Last updated