콘텐츠로 이동

UTL RAW

UTL_RAW#

UTL_RAW 패키지는 RAW(VARBYTE) 타입의 데이터를 다른 데이터 타입으로 변환하거나 조작할 수 있는 함수이다. UTL_RAW 패키지를 구성하는 프로시저와 함수는 아래의 표와 같이 제공한다.

프로시저 및 함수 설명
CAST_FROM_BINARY_INTEGER INTEGER 타입의 데이터를 RAW 타입으로 변환한다.
CAST_FROM_NUMBER NUMERIC 타입의 데이터를 RAW 타입으로 변환한다.
CAST_TO_BINARY_INTEGER RAW 타입의 데이터를 BINARY_INTEGER 타입으로 변환한다.
CAST_TO_NUMBER RAW 타입의 데이터를 NUMERIC 타입으로 변환한다.
CAST_TO_RAW VARCHAR 타입의 데이터를 RAW 타입으로 변환한다.
CAST_TO_VARCHAR2 RAW 타입의 데이터를 VARCHAR 타입으로 변환한다.
CONCAT RAW 타입의 데이터를 연결한다.
LENGTH 입력된 데이터 길이를 반환한다.
SUBSTR 입력된 데이터의 일부 문자열을 반환한다.

CAST_FROM_BINARY_INTEGER#

INTEGER 타입의 데이터를 RAW 타입으로 변환하여 반환하는 함수이다.

구문#

UTL_RAW.CAST_FROM_BINARY_INTEGER(
  n IN INTEGER,
  endianess IN INTEGER DEFAULT 1);

파라미터#

이름 입출력 데이터 타입 설명
n IN INTEGER 변환할 데이터
endianess IN INTEGER 호환성을 위한 파라미터이며, 이 값은 무시된다.

결과값#

입력된 INTEGER 타입의 데이터를 RAW 타입으로 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

INTEGER 타입의 123456를 RAW 타입의 데이터로 변환하여 출력한다.

iSQL> select utl_raw.cast_from_binary_integer(123456) from dual;
CAST_FROM_BINARY_INTEGER(123456)  
------------------------------------
40E20100          
1 row selected.

CAST_FROM_NUMBER#

NUMERIC 타입의 데이터를 RAW 타입으로 변환하여 반환하는 함수이다.

구문#

UTL_RAW.CAST_FROM_NUMBER(n IN NUMBER);

파라미터#

이름 입출력 데이터 타입 설명
n IN NUMBER RAW 타입으로 변환할 데이터

결과값#

입력된 NUMERIC 타입의 데이터를 RAW 타입으로 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

NUMBER 타입의 1.123456789를 RAW 타입으로 변환하여 출력한다.

iSQL> select utl_raw.cast_from_number(1.123456789) from dual;
CAST_FROM_NUMBER(1.123456789)
------------------------------------------------------------------------------------
07C1010C22384E5A
1 row selected.

CAST_TO_BINARY_INTEGER#

RAW 타입의 데이터를 INTEGER 타입으로 변환하여 반환하는 함수이다

구문#

UTL_RAW.CAST_TO_BINARY_INTEGER(
  r IN RAW(8),
  endianess IN INTEGER DEFAULT 1);

파라미터#

이름 입출력 데이터 타입 설명
r IN RAW(8) INTEGER 타입으로 변환할 데이터
endianess IN INTEGER 호환성을 위한 파라미터이며, 이 값은 무시된다.

결과값#

입력된 RAW 타입의 데이터를 INTEGER타입으로 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

RAW 타입의 40E20100를 INTEGER로 변환하여 출력한다.

iSQL> select utl_raw.cast_to_binary_integer('40E20100') from dual;
CAST_TO_BINARY_INTEGER('40E20100')
-------------------------------------
123456      
1 row selected.

CAST_TO_NUMBER#

RAW 타입의 데이터를 NUMERIC 타입으로 변환하여 반환하는 함수이다.

구문#

UTL_RAW.CAST_TO_NUMBER(r IN RAW(32767));

파라미터#

이름 입출력 데이터 타입 설명
r IN RAW(32767) NUMERIC 타입으로 변환할 데이터

결과값#

입력된 RAW 타입의 데이터를 NUMERIC 타입으로 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

RAW 타입의 07C1010C22384E5A 데이터를 NUMBER로 변환하여 출력한다.

iSQL> select utl_raw.cast_to_number('07C1010C22384E5A') from dual;
CAST_TO_NUMBER('07C1010C22384E5A')
-------------------------------------
1.12345679  
1 row selected.

CAST_TO_RAW#

VARCHAR 타입의 데이터를 RAW(VARBYTE) 타입으로 변환하여 반환하는 함수이다.

구문#

UTL_RAW.CAST_TO_RAW(c IN VARCHAR(32767));

파라미터#

이름 입출력 데이터 타입 설명
c IN VARCHAR(32767) RAW 타입으로 변환할 데이터

결과값#

입력된 데이터를 RAW 타입으로 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

'altibase'를 RAW 타입으로 출력한다.

iSQL> select cast(utl_raw.cast_to_raw('altibase') as raw(10)) from dual;
CAST(UTL_RAW.CAST_TO_RAW('altibase') as RA  
----------------------------------------------
0800616C746962617365  
1 row selected.

CAST_TO_VARCHAR2#

RAW 타입의 데이터를 VARCHAR 타입으로 변환하여 반환하는 함수이다.

구문#

UTL_RAW.CAST_TO_VARCHAR2(c IN RAW(32767));

파라미터#

이름 입출력 데이터 타입 설명
c IN RAW(32767) VARCHAR 타입으로 변환할 데이터

결과값#

입력된 데이터를 VARCHAR 타입으로 변환하여 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

0800616C746962617365 RAW 타입의 데이터를 VARCHAR 타입으로 변환하여 출력한다.

iSQL> select cast(utl_raw.cast_to_varchar2('0800616C746962617365') as varchar(8)) from dual;
CAST(UTL_RAW.CAST_TO_VARCHAR2('0800616C746  
----------------------------------------------
altibase  
1 row selected.

CONCAT#

파라미터에 입력된 RAW(VARBYTE) 타입의 데이터를 연결하여 반환하는 함수이다.

구문#

UTL_RAW.CONCAT(
  r1 IN RAW(32767) DEFAULT NULL,
  r2 IN RAW(32767) DEFAULT NULL,
  r3 IN RAW(32767) DEFAULT NULL,
  r4 IN RAW(32767) DEFAULT NULL,
  r5 IN RAW(32767) DEFAULT NULL,
  r6 IN RAW(32767) DEFAULT NULL,
  r7 IN RAW(32767) DEFAULT NULL,
  r8 IN RAW(32767) DEFAULT NULL,
  r9 IN RAW(32767) DEFAULT NULL,
  r10 IN RAW(32767) DEFAULT NULL,
  r11 IN RAW(32767) DEFAULT NULL,
  r12 IN RAW(32767) DEFAULT NULL);

파라미터#

이름 입출력 데이터 타입 설명
r1...r12 IN RAW(32767) RAW 타입의 데이터 r1~r12까지 입력할 수 있다.

결과값#

r1~r12까지 연결한 데이터를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

RAW 타입의 AA와 BB를 연결하여 출력한다.

iSQL> select cast(utl_raw.concat(raw'aa', raw'bb') as raw(4)) from dual;
CAST(UTL_RAW.CONCAT(RAW'aa', RAW'bb') as R  
----------------------------------------------
AABB      
1 row selected.

LENGTH#

입력된 RAW 타입의 데이터 길이를 반환하는 함수이다

구문#

UTL_RAW.LENGTH(r IN RAW(32767));

파라미터#

이름 입출력 데이터 타입 설명
c IN RAW(32767) 길이를 반환할 RAW 타입의 데이터

결과값#

입력된 RAW 타입의 데이터 길이를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

'altibase' 문자열을 RAW 타입의 데이터 길이로 출력한다.

iSQL> select utl_raw.length(utl_raw.cast_to_raw('altibase')) from dual;
LENGTH(UTL_RAW.CAST_TO_RAW('altibase'))
------------------------------------------
12          
1 row selected.

SUBSTR#

입력된 RAW 타입의 데이터에서 문자열의 일부를 반환하는 함수이다.

구문#

UTL_RAW.SUBSTR(
  r IN RAW(32767),
  pos IN INTEGER,
  len IN INTEGER);

파라미터#

이름 입출력 데이터 타입 설명
r IN RAW(32767) 입력된 데이터
pos IN INTEGER 데이터의 반환을 시작하는 위치. 이 값이 양수이면, 입력 데이터의 앞에서부터 시작한다. 이 값이 음수이면, 입력 데이터의 뒤에서부터 시작한다.
len IN INTEGER 반환할 데이터의 길이. 생략하면 문자열의 끝까지 반환된다.

결과값#

입력된 데이터의 시작 위치부터 지정한 길이만큼의 RAW 데이터를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

0102030405 RAW 타입의 데이터에서 첫 번째부터 2만큼 길이가 되는 데이터를 반환한다.

iSQL> select cast(utl_raw.substr('0102030405',1,2) as raw(2)) from dual;
CAST(UTL_RAW.SUBSTR('0102030405',1,2) as R  
----------------------------------------------
0102