UTL_ENCODEパッケージは、エンコードおよびデコード機能を提供します。
BASE64_ENCODE
BASE64_ENCODE関数は、RAW文字列またはTEXT文字列をBase64-encoded文字列に変換します。 BASE64_ENCODE関数には、次の2種類の構文を使用できます。
BASE64_ENCODE(r IN RAW)
BASE64_ENCODE (OIDのloid)
この関数は、RAW値またはオブジェクトIDを返します。
パラメーター
パラメーター | 説明 |
r | Base64-encoded文字列に変換するRAW文字列を指定します。 |
loid | Base64-encoded文字列に変換するラージオブジェクトのIDを指定します。 |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
BASE64_ENCODE関数を使用して、文字列をBase64-encoded文字列に変換します。 例:
SELECT UTL_ENCODE.BASE64_ENCODE(CAST ('abc' AS RAW));
同様の出力が返されます: base64_encode
---------------
YWJj
(1行)
BASE64_DECODE
BASE64_DECODE関数は、Base64-encoded文字列をBASE64_ENCODE関数によってエンコードされた元の値に変換します。 構文:
BASE64_DECODE(r IN RAW)
関数は RAW 値を返します。
パラメーター
パラメーター | 説明 |
r | BASE64_ENCODE関数を使用してエンコードされた後の文字列。 |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
BASE64_DECODE関数を使用して、Base64-encoded文字列をRAW値に変換します。
SELECT UTL_ENCODE.BASE64_DECODE(CAST ('YWJj' AS RAW));
同様の出力が返されます: base64_decode
---------------
abc
(1行)
MIMEHEADER_ENCODE
MIMEHEADER_ENCODE関数は、文字列をMIMEヘッダー形式に変換し、文字列をエンコードします。
MIMEHEADER_ENCODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN ININTEGER DEFAULT NULL)
この関数はVARCHAR2値を返します。
パラメーター
パラメーター | 説明 |
buf | フォーマットおよびエンコードする文字列を指定します。 文字列はVARCHAR2値でなければなりません。 |
encode_charset | 入力文字列から変換された結果文字列に使用する文字セットを指定します。 この関数は、関数が入力文字列をフォーマットしてエンコードする前に、指定された文字セットを使用する対応する文字列に入力文字列を変換します。 デフォルト値は NULL です。 |
encoding | 文字列のエンコードに使用されるエンコードタイプを指定します。 有効な値:
説明 デフォルトでは、quoted-printableエンコーディングが使用されます。 |
例
MIMEHEADER_ENCODE関数を使用して文字列をエンコードします。 例:
SELECT UTL_ENCODE.MIMEHEADER_ENCODE('What is the date?') FROM DUAL;
同様の出力が返されます: mimeheader_encode
------------------------------
=?UTF8?Q? 日付は何ですか ??=
(1行)
MIMEHEADER_DECODE
MIMEHEADER_DECODE関数は、MIMEHEADER_ENCODE関数によってエンコードされた値をデコードします。 構文:
MIMEHEADER_DECODE (VARCHAR2のbuf)
この関数はVARCHAR2値を返します。
パラメーター
パラメーター | 説明 |
buf | デコードする値を指定します。 値はMIMEHEADER_ENCODE関数によってエンコードされました。 |
例
MIMEHEADER_DECODE関数を使用して、MIMEHEADER_ENCODE関数によってエンコードされた文字列をデコードします。 例:
SELECT UTL_ENCODE.MIMEHEADER_DECODE('=?UTF8?Q?What is the date ??=') FROM DUAL;
同様の出力が返されます: mimeheader_decode
-------------------
What is the date?
(1行)
QUOTED_PRINTABLE_ENCODE
QUOTED_PRINTABLE_ENCODE関数は、文字列をquoted-printable形式に変換してエンコードします。 構文:
QUOTED_PRINTABLE_ENCODE(r IN RAW)
関数は RAW 値を返します。
パラメーター
パラメーター | 説明 |
r | quoted-printable形式でエンコードする文字列を指定します。 |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
QUOTED_PRINTABLE_ENCODE関数を使用して文字列をエンコードします。 例:
SELECT UTL_ENCODE.QUOTED_PRINTABLE_ENCODE('E=mc2') FROM DUAL;
同様の出力が返されます: quoted_printable_encode
-------------------------
E=3Dmc2
(1行)
QUOTED_PRINTABLE_DECODE
QUOTED_PRINTABLE_DECODE関数は、エンコードされたquoted-printable文字列をRAW文字列にデコードします。 構文:
QUOTED_PRINTABLE_DECODE(r IN RAW)
関数は RAW 値を返します。
パラメーター
パラメーター | 説明 |
r | QUOTED_PRINTABLE_ENCODE関数を使用してエンコードする文字列を指定します。 文字列はRAW値です。 |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
QUOTED_PRINTABLE_DECODE関数を使用して文字列をデコードします。 例:
SELECT UTL_ENCODE.QUOTED_PRINTABLE_DECODE('E=3Dmc2') FROM DUAL;
同様の出力が返されます: quoted_printable_decode
-------------------------
E=mc2
(1行)
TEXT_ENCODE
TEXT_ENCODE関数は、入力文字列を指定された文字セットを使用する文字列に変換し、結果文字列をエンコードします。 構文:
TEXT_DECODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL)
この関数はVARCHAR2値を返します。
パラメーター
パラメーター | 説明 |
buf | エンコードする文字列を指定します。 |
encode_charset | 変換用に指定した文字セットを指定します。 デフォルト値は NULL です。 |
encoding | TEXT_ENCODE関数によって使用されるエンコードタイプを指定します。 有効な値:
説明 デフォルトでは、quoted-printableエンコーディングが使用されます。 |
例
TEXT_ENCODE関数を使用して文字列をエンコードします。 例:
SELECT UTL_ENCODE.TEXT_ENCODE('What is the date?', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
同様の出力が返されます: text_encode
--------------------------
V2hhdCBpcyB0aGUgZGF0ZT8=
(1行)
TEXT_DECODE
TEXT_DECODE関数は、エンコードされた文字列を、TEXT_ENCODE関数によってエンコードされた対応するVARCHAR2値に変換およびデコードします。 構文:
TEXT_DECODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL)
この関数はVARCHAR2値を返します。
パラメーター
パラメーター | 説明 |
buf | TEXT_ENCODE関数を使用してエンコードされた文字列を指定します。 |
encode charset | 変換用に指定した文字セットを指定します。 デフォルト値は NULL です。 |
encoding | TEXT_DECODE関数によって使用されるエンコードタイプを指定します。 有効な値:
説明 デフォルトでは、quoted-printableエンコーディングが使用されます。 |
例
TEXT_DECODE関数を使用して文字列をデコードします。 例:
SELECT UTL_ENCODE.TEXT_DECODE('V2hhdCBpcyB0aGUgZGF0ZT8=', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
同様の出力が返されます: text_decode
-------------------
What is the date?
(1行)
UUENCODE
UUENCODE関数は、RAW文字列をuuencoded文字列にエンコードします。 構文:
UUENCODE(r IN RAW, type IN INTEGER DEFAULT 1, filename IN VARCHAR2 DEFAULT NULL, permission IN VARCHAR2 DEFAULT NULL)
関数は RAW 値を返します。
パラメーター
パラメーター | 説明 |
r | uuencoded文字列に変換する文字列を指定します。 |
type | 返されるUUENCODED文字列の型を指定します。 デフォルト値は 1 です。 詳細については、「Type」をご参照ください。 |
filename | uuencoded文字列に含めるファイル名を指定します。 ファイル名を指定しない場合、UUENCODE関数はエンコードされた文字列にファイル名uuencode.txtを含めます。 |
permission | 権限モードを指定します。 デフォルト値は NULL です。 |
有効値 | 定数 |
1 | complete |
2 | header_piece |
3 | middle_piece |
4 | end_piece |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
UUENCODE関数を使用して文字列をエンコードします。 例:
SELECT UTL_ENCODE.UUENCODE('What is the date?') FROM DUAL;
同様の出力が返されます: uuencode
--------------------------------------------------------------------
0 uuencode.txt\01215VAA="!I<R!T:&4 @ 9&% T93 \'\012'\012end\012
(1行)
UUDECODE
UUDECODE関数は、uuencoded文字列をUUENCODE関数によってエンコードされたRAW値に変換およびデコードします。 構文:
UUDECODE(r IN RAW)
関数は RAW 値を返します。
パラメーター
パラメーター | 説明 |
r | RAW値に変換するUUENCODED文字列を指定します。 |
例
SET bytea_output = escape;
詳細については、「PostgreSQLコアファイル」をご参照ください。
文字列をデコードするには、UUDECODE関数を使用します。 例:
SELECT UTL_ENCODE.UUDECODE('begin 0 uuencode.txt\01215VAA="!I<R!T:&4 @ 9&% T93\\'\012'\012end\012 ') FROM DUAL;
同様の出力が返されます: uudecode
-------------------
What is the date?
(1行)
polar_enable_base64_decode
polar_enable_base64_decode
パラメーターをonに設定すると、BASE64_DECODE関数は自動的に入力エンコード文字列を無効な形式で識別します。 次に、関数は、エンコードされた文字列の有効な最初の部分をデコードします。 BASE64_DECODE関数の詳細については、「BASE64_DECODE」をご参照ください。
polar_enable_base64_decode
パラメーターはoffに設定されており、コンソールで変更することはできません。 この機能を使用するには、クォータセンターに移動します。 polar_enable_base64_decodeに対応する [操作] 列で [適用] をクリックします。 - 次のコードは、
polar_enable_base64_decode
パラメーターがonに設定された後に渡されるエンコード文字列の例を示しています。select utl_encode.base64_decode(utl_raw.cast_to_raw('NjMzNDgwN===gNjMzNjMz'))));
BASE64_DECODE関数は、エンコードされた文字列の有効な最初の部分をデコードします。 次のサンプル成功応答が返されます。
base64_decode ---------------- \x363333343830 (1行)
- 次のコードは、
polar_enable_base64_decode
パラメーターがoffに設定された後に渡されるエンコード文字列の例を示しています。select utl_encode.base64_decode(utl_raw.cast_to_raw('NjMzNDgwN===gNjMzNjMz'))));
BASE64_DECODE関数は、無効な形式のエンコード文字列をデコードできません。 同様のエラー応答が返されます。
エラー: base64シーケンスのデコード中に予期しない "="