제38장 UTL_ENCODE

내용 목차

38.1. 개요
38.2. 함수
38.2.1. BASE64_DECODE
38.2.2. BASE64_ENCODE
38.2.3. QUOTED_PRINTABLE_DECODE
38.2.4. QUOTED_PRINTABLE_ENCODE
38.2.5. TEXT_DECODE
38.2.6. TEXT_ENCODE

본 장에서는 UTL_ENCODE 패키지의 기본 개념과 패키지 내의 함수를 사용하는 방법을 설명한다.

38.1. 개요

UTL_ENCODE는 호스트 간의 데이터를 전송할 수 있도록 표준 인코딩 기술로 인코딩하는 함수를 제공하는 패키지이다.

38.2. 함수

본 절에서는 UTL_ENCODE 패키지에서 제공하는 함수를 알파벳 순으로 설명한다.

38.2.1. BASE64_DECODE

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;
    /

38.2.2. BASE64_ENCODE

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;
    /

38.2.3. QUOTED_PRINTABLE_DECODE

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;
    /

38.2.4. QUOTED_PRINTABLE_ENCODE

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;
    /

38.2.5. TEXT_DECODE

문자 집합을 갖는 문자열을 디코딩하는 함수이다. 디코딩 후 변경할 문자 집합에 따라 텍스트를 변환한다.

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인 경우 문자 집합을 변경하지 않는다.

    데이터베이스 문자 집합에서 파라미터에 지정한 문자 집합으로 문자 집합을 변환한다.

    encoding

    디코딩할 타입을 지정한다.

    • 1: BASE64 방식으로 디코딩한다.

    • 2: Quoted-printable 방식을 디코딩한다.

    기본값은 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;
    /

38.2.6. TEXT_ENCODE

문자 집합을 갖는 문자열을 인코딩하는 함수이다. 변경할 문자 집합에 따라 텍스트를 변환하고 인코딩한다.

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

    인코딩할 타입을 지정한다.

    • 1: BASE64 방식으로 인코딩한다.

    • 2: Quoted-printable 방식으로 인코딩한다.

    기본값은 NULL이며 Quoted-printable 방식으로 인코딩한다.

  • 예제

    DECLARE
        src VARCHAR2(32767);
        tar VARCHAR2(32767);
    BEGIN
        src := 'tibero';
        tar := UTL_ENCODE.TEXT_ENCODE(src, NULL, 1);
        ...
    END;
    /