내용 목차
본 장에서는 UTL_ENCODE 패키지의 기본 개념과 패키지 내의 함수를 사용하는 방법을 설명한다.
본 절에서는 UTL_ENCODE 패키지에서 제공하는 함수를 알파벳 순으로 설명한다.
BASE64 형태로 인코딩된 RAW 타입의 문자열을 원래의 이진 값으로 변환하는 함수이다.
BASE64_DECODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION BASE64_DECODE ( r IN RAW ) RETURN RAW;
파라미터
파라미터 | 설명 |
---|---|
r | 원본 테이블과 새 테이블이 속한 스키마의 이름이다. |
예제
DECLARE org raw(100); enc raw(100); BEGIN org := 'aaabae64ecde'; enc := UTL_ENCODE.BASE64_ENCODE(org); ... org := UTL_ENCODE.BASE64_DECODE(enc); ... END; /
RAW 타입의 이진 값을 BASE64 형태로 인코딩된 RAW 타입의 문자열로 변환하는 함수이다.
BASE64_ENCODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION BASE64_ENCODE ( r IN RAW ) RETURN RAW;
파라미터
파라미터 | 설명 |
---|---|
r | 인코딩할 RAW 타입의 문자열이다. |
예제
DECLARE org raw(100); enc raw(100); BEGIN org := 'aaabae64ecde'; enc := UTL_ENCODE.BASE64_ENCODE(org); ... END; /
Quoted-printable 형식으로 인코딩된 문자열을 읽어들여서 디코딩하는 함수이다.
QUOTED_PRINTABLE_DECODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION QUOTED_PRINTABLE_DECODE ( r IN RAW ) RETURN RAW;
파라미터
파라미터 | 설명 |
---|---|
r | 디코딩할 RAW 타입의 문자열이다. |
반환값
반환값 | 설명 |
---|---|
RAW | 디코딩된 RAW 타입의 문자열이다. |
예제
DECLARE
src VARCHAR2(32767);
tar RAW(32767);
dec RAW(32767);
BEGIN
src := 'tib=ero';
tar := UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(src));
dec := UTL_ENCODE.QUOTED_PRINTABLE_DECODE(tar);
DBMS_OUTPUT.PUT_LINE('ENCODED DATA :' || UTL_RAW.CAST_TO_VARCHAR2(tar));
DBMS_OUTPUT.PUT_LINE('DECODED DATA :' || UTL_RAW.CAST_TO_VARCHAR2(dec));
END;
/
RAW 타입의 입력 문자열을 Quoted-printable 형식의 문자열로 인코딩하는 함수이다.
QUOTED_PRINTABLE_ENCODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION QUOTED_PRINTABLE_ENCODE ( r IN RAW ) RETURN RAW;
파라미터
파라미터 | 설명 |
---|---|
r | 인코딩할 RAW 타입의 문자열이다. |
반환값
반환값 | 설명 |
---|---|
RAW | 인코딩된 RAW 타입의 문자열이다. |
예제
DECLARE
src VARCHAR2(32767);
tar RAW(32767);
dec RAW(32767);
BEGIN
src := 'tib=ero';
tar := UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(src));
dec := UTL_ENCODE.QUOTED_PRINTABLE_DECODE(tar);
DBMS_OUTPUT.PUT_LINE('ENCODED DATA :' || UTL_RAW.CAST_TO_VARCHAR2(tar));
DBMS_OUTPUT.PUT_LINE('DECODED DATA :' || UTL_RAW.CAST_TO_VARCHAR2(dec));
END;
/
문자 집합을 갖는 문자열을 디코딩하는 함수이다. 디코딩 후 변경할 문자 집합에 따라 텍스트를 변환한다.
TEXT_DECODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION TEXT_DECODE ( buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL ) RETURN VARCHAR2;
파라미터
파라미터 | 설명 |
---|---|
buf | 디코딩할 문자열이다. |
encode_charset | 변경할 문자 집합을 지정한다. 기본값은 NULL이며, NULL인 경우 문자 집합을 변경하지 않는다. 데이터베이스 문자 집합에서 파라미터에 지정한 문자 집합으로 문자 집합을 변환한다. |
encoding | 디코딩할 타입을 지정한다.
기본값은 NULL이며 Quoted-printable 방식을 디코딩한다.
|
예제
DECLARE
src VARCHAR2(32767);
tar VARCHAR2(32767);
dec VARCHAR2(32767);
BEGIN
src := 'tibero';
tar := UTL_ENCODE.TEXT_ENCODE(src, NULL, UTL_ENCODE.BASE64);
dec := UTL_ENCODE.TEXT_DECODE(tar, NULL, UTL_ENCODE.BASE64);
DBMS_OUTPUT.PUT_LINE('ENCODED DATA :' || tar);
DBMS_OUTPUT.PUT_LINE('DECODED DATA :' || dec);
END;
/
문자 집합을 갖는 문자열을 인코딩하는 함수이다. 변경할 문자 집합에 따라 텍스트를 변환하고 인코딩한다.
TEXT_ENCODE 함수의 세부 내용은 다음과 같다.
프로토타입
FUNCTION TEXT_ENCODE ( buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL ) RETURN VARCHAR2;
파라미터
파라미터 | 설명 |
---|---|
buf | 인코딩할 문자열이다. |
encode_charset | 변경할 문자 집합을 지정한다. 단, 문자 집합을 변경하는 기능은 다음에 구현할 예정이므로 기본값인 NULL로 지정한다. |
encoding | 인코딩할 타입을 지정한다.
기본값은 NULL이며 Quoted-printable 방식으로 인코딩한다. |
예제
DECLARE
src VARCHAR2(32767);
tar VARCHAR2(32767);
BEGIN
src := 'tibero';
tar := UTL_ENCODE.TEXT_ENCODE(src, NULL, 1);
...
END;
/