본문 바로가기
Oracle/운영

data type을 확인하는 dump 함수 사용법

by 취미툰 2025. 10. 30.

안녕하세요.

오늘은 오라클에서 type을 확인하는 방법 중 하나인 dump 함수 사용을 정리해보겠습니다.

컬럼의data type을 확인하는 방법은 몇가지가 있는데요, 제일 일반적인 것은 desc를 보거나 *_tab_columns를 확인하는 방법인 것같습니다.

저는 오브젝트에 존재하는 데이터타입을 확인하고 싶은게 아니였고, 실시간 함수가 적용된 결과값의 데이터타입을 궁금해서 방법을 찾다가 내장함수로 존재하는 dump라는 함수가 있는것을 확인하였습니다.

USAGE dump(column,format,start_position,length) 식으로 간단하게 사용가능합니다.

column명만 기입학 나머지는 미입력시 default값으로 입력가능합니다.

format은 8,10,16,17이 있으며 8진수 10진수 16진수입니다 17은 일반적으로는 사용하지 않고 (일반적으로 ASCII 또는 EBCDIC) 문자로 인쇄가능한 경우 각 바이트별로 반환합니다. 아니면 16으로 처리됩니다.

start_position과 length는 내부표현의 어느부분을 반환할것인가를 정하는부분입니다. 미입력시 전체를 반환합니다 

(예시의 110,111 부분)

 

 

SELECT DUMP(last_name, 10, 3, 2) "ASCII"
  FROM employees
  WHERE last_name = 'Hunold'
  ORDER BY employee_id;

ASCII
--------------------------------------------------------------------
Typ=1 Len=6: 110,111

 

결과값은 Typ=xx Len=xx xxx,xxx 형식으로 결과값이 나오게 됩니다

Typ은 Type으로 숫자에 따라 데이터타입을 나타냅니다. 대표적으로 아래 숫자가 많이 사용됩니다.

1은 varchar

2는 number

8은 long

12는 date

96은 char/Nchar

112는 CLOB

 

모든 숫자에 대한 타입은 아래 출처에서 확인하시면 됩니다.

 

출처 : https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Data-Types.html#GUID-7B72E154-677A-4342-A1EA-C74C1EA928E6

 

SQL Language Reference

 

docs.oracle.com

 

두번째 Len은 데이터의 길이(bytes)입니다. 6은 6bytes의 데이터가 저장되어 있다는 뜻입니다.

 

세번째 숫자는 내부적으로 데이터를 표시하는 코드입니다.

 

 

출처 : https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/DUMP.html

 

SQL Language Reference

 

docs.oracle.com

 

저의경우에는 select dump(mod(empno,2)) from emp 의 형식으로 간단하게 다른 함수사용시 데이터타입이 어떻게 나오는지에 대해서 확인할 때 사용하였습니다.

 

감사합니다

반응형

댓글