UTL_ENCODE パッケージは、データをエンコードおよびデコードする機能を提供します。
関数/ストアドプロシージャ | 戻り値の型 | 説明 |
---|---|---|
BASE64_DECODE(r) | RAW | Base64 でエンコードされた文字列を元の RAW 値に変換します。 |
BASE64_ENCODE(r) | RAW | RAW 文字列をエンコードされた Base64 値に変換します。 |
BASE64_ENCODE(loid) | TEXT | TEXT 文字列をエンコードされた Base64 値に変換します。 |
MIMEHEADER_DECODE(buf) | VARCHAR2 | エンコードされた MIMEHEADER 形式の文字列を元の値に変換します。 |
MIMEHEADER_ENCODE(buf, encode_charset, encoding) | VARCHAR2 | 文字列を MIMEHEADER 形式に変換してエンコードします。 |
QUOTED_PRINTABLE_DECODE(r) | RAW | エンコードされた文字列を RAW 値に変換します。 |
QUOTED_PRINTABLE_ENCODE(r) | RAW | 入力文字列を quoted-printable 形式の RAW 値に変換します。 |
TEXT_DECODE(buf, encode_charset, encoding) | VARCHAR2 | TEXT_ENCODE でエンコードされた文字列をデコードします。 |
TEXT_ENCODE(buf, encode_charset, encoding) | VARCHAR2 | 文字列をユーザー指定の文字セットに変換してから、文字列をエンコードします。 |
UUDECODE(r) | RAW | uuencode でエンコードされた文字列を RAW 値に変換します。 |
UUENCODE(r, type, filename, permission) | RAW | RAW 文字列をエンコードされた uuencode 値に変換します。 |
BASE64_DECODE
Base64 でエンコードされた文字列を、BASE64_ENCODE 関数でエンコードされた元の値に変換します。 構文:
BASE64_DECODE(r IN RAW)
この関数は、RAW 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターは、RAW 値に変換される Base64 エンコードデータを含む文字列です。 |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、BASE64_ENCODE 関数を使用してテキスト abc を含む文字列をエンコードし、BASE64_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.BASE64_ENCODE(CAST ('abc' AS RAW));
base64_encode
---------------
YWJj
(1 row)
edb=# SELECT UTL_ENCODE.BASE64_DECODE(CAST ('YWJj' AS RAW));
base64_decode
---------------
abc
(1 row)
BASE64_ENCODE
BASE64_ENCODE 関数は、RFC 4648 で説明されているように、Base64 形式で文字列を変換およびエンコードします。 この関数は、UTL_SMTP パッケージを使用して送信する MIME メールを作成する場合に役立ちます。 BASE64_ENCODE 関数には 2 つの構文があります。
BASE64_ENCODE(r IN RAW)
および
BASE64_ENCODE(loid IN OID)
この関数は、RAW 値または OID を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターは、Base64 に変換される RAW 文字列を指定します。 |
loid | loid パラメーターは、Base64 に変換されるラージオブジェクトの ID を指定します。 |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、BASE64_ENCODE 関数を使用してテキスト abc を含む文字列をエンコードし、BASE64_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.BASE64_ENCODE(CAST ('abc' AS RAW));
base64_encode
---------------
YWJj
(1 row)
edb=# SELECT UTL_ENCODE.BASE64_DECODE(CAST ('YWJj' AS RAW));
base64_decode
---------------
abc
(1 row)
MIMEHEADER_DECODE
MIMEHEADER_DECODE 関数は、MIMEHEADER_ENCODE 関数によってエンコードされた値をデコードします。 構文:
MIMEHEADER_DECODE(buf IN VARCHAR2)
この関数は VARCHAR2 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
buf | buf パラメーターには、デコードされる値 (MIMEHEADER_ENCODE 関数によってエンコードされた) が含まれます。 |
例
次の例では、MIMEHEADER_ENCODE 関数を使用して文字列をエンコードし、MIMEHEADER_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.MIMEHEADER_ENCODE('What is the date?') FROM DUAL;
mimeheader_encode
------------------------------
=? UTF8? Q? What is the date?? =
(1 row)
edb=# SELECT UTL_ENCODE.MIMEHEADER_DECODE('=? UTF8? Q? What is the date?? =') FROM DUAL;
mimeheader_decode
-------------------
What is the date?
(1 row)
MIMEHEADER_ENCODE
MIMEHEADER_ENCODE 関数は、文字列を MIME ヘッダー形式に変換してから、文字列をエンコードします。 構文:
MIMEHEADER_ENCODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN INTEGER DEFAULT NULL)
この関数は VARCHAR2 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
buf | buf パラメーターには、フォーマットおよびエンコードされる文字列が含まれています。 文字列は VARCHAR2 値です。 |
encode_charset | encode_charset パラメーターは、フォーマットおよびエンコードされる前に文字列が変換される先の文字セットを指定します。 デフォルト値は NULL です。 |
encoding | encoding パラメーターは、文字列をエンコードするときに使用されるエンコードの種類を指定します。 次の 2 つのエンコードの種類のいずれかを指定することができます。
|
例
次の例では、MIMEHEADER_ENCODE 関数を使用して文字列をエンコードし、MIMEHEADER_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.MIMEHEADER_ENCODE('What is the date?') FROM DUAL;
mimeheader_encode
------------------------------
=? UTF8? Q? What is the date?? =
(1 row)
edb=# SELECT UTL_ENCODE.MIMEHEADER_DECODE('=? UTF8? Q? What is the date?? =') FROM DUAL;
mimeheader_decode
-------------------
What is the date?
(1 row)
QUOTED_PRINTABLE_DECODE
QUOTED_PRINTABLE_DECODE 関数は、エンコードされた quoted-printable 文字列をデコードされた RAW 文字列に変換します。 構文:
QUOTED_PRINTABLE_DECODE(r IN RAW)
この関数は、RAW 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターには、デコードされるエンコードされた文字列が含まれています。 文字列は、QUOTED_PRINTABLE_ENCODE 関数によってエンコードされた RAW 値です。 |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、最初に文字列をエンコードしてからデコードします。
edb=# SELECT UTL_ENCODE.QUOTED_PRINTABLE_ENCODE('E=mc2') FROM DUAL; quoted_printable_encode
-------------------------
E=3Dmc2
(1 row)
edb=# SELECT UTL_ENCODE.QUOTED_PRINTABLE_DECODE('E=3Dmc2') FROM DUAL;
quoted_printable_decode
-------------------------
E=mc2
(1 row)
QUOTED_PRINTABLE_ENCODE
QUOTED_PRINTABLE_ENCODE 関数は、文字列を quoted-printable 形式に変換およびエンコードします。 構文:
QUOTED_PRINTABLE_ENCODE(r IN RAW)
この関数は、RAW 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターには、quoted-printable 形式でエンコードされる文字列 (RAW 値) が含まれます。 |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、最初に文字列をエンコードしてからデコードします。
edb=# SELECT UTL_ENCODE.QUOTED_PRINTABLE_ENCODE('E=mc2') FROM DUAL; quoted_printable_encode
-------------------------
E=3Dmc2
(1 row)
edb=# SELECT UTL_ENCODE.QUOTED_PRINTABLE_DECODE('E=3Dmc2') FROM DUAL;
quoted_printable_decode
-------------------------
E=mc2
(1 row)
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 | buf パラメーターには、TEXT_ENCODE 関数によってエンコードされた元の値に変換されるエンコードされた文字列が含まれています。 |
encode_charset | encode_charset パラメーターは、エンコード前に文字列が変換される先の文字セットを指定します。 デフォルト値は NULL です。 |
encoding | encoding パラメーターは、TEXT_DECODE 関数で使用されるエンコードの種類を指定します。 次の 2 つのエンコードの種類のいずれかを指定することができます。
|
例
次の例では、TEXT_ENCODE 関数を使用して文字列をエンコードしてから、TEXT_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.TEXT_ENCODE('What is the date?', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
text_encode
--------------------------
V2hhdCBpcyB0aGUgZGF0ZT8=
(1 row)
edb=# SELECT UTL_ENCODE.TEXT_DECODE('V2hhdCBpcyB0aGUgZGF0ZT8=', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
text_decode
-------------------
What is the date?
(1 row)
TEXT_ENCODE
TEXT_ENCODE 関数は、文字列を指定された文字セットに変換してから、文字列をエンコードします。 構文:
TEXT_DECODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL)
この関数は VARCHAR2 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
buf | buf パラメーターにはエンコードされた文字列が含まれています。その文字列は指定された文字セットに変換され、TEXT_ENCODE 関数によってエンコードされます。 |
encode_charset | encode_charset パラメーターは、エンコード前に値が変換される先の文字セットを指定します。 デフォルト値は NULL です。 |
encoding | encoding パラメーターは、TEXT_ENCODE 関数で使用されるエンコードの種類を指定します。 次の 2 つのエンコードの種類のいずれかを指定することができます。
|
例
次の例では、TEXT_ENCODE 関数を使用して文字列をエンコードしてから、TEXT_DECODE 関数を使用して文字列をデコードします。
edb=# SELECT UTL_ENCODE.TEXT_ENCODE('What is the date?', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
text_encode
--------------------------
V2hhdCBpcyB0aGUgZGF0ZT8=
(1 row)
edb=# SELECT UTL_ENCODE.TEXT_DECODE('V2hhdCBpcyB0aGUgZGF0ZT8=', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
text_decode
-------------------
What is the date?
(1 row)
UUDECODE
UUDECODE 関数は、uuencode エンコードされた文字列を、UUENCODE 関数によって最初にエンコードされた RAW 値に変換およびデコードします。 構文:
UUDECODE(r IN RAW)
この関数は、RAW 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターには、RAW 値に変換される uuencoded 文字列が含まれています。 |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、UUENCODE 関数を使用して文字列をエンコードしてから、UUDECODE 関数を使用して文字列をデコードします。
edb=# SET bytea_output = escape;
SET
edb=# SELECT UTL_ENCODE.UUENCODE('What is the date?') FROM DUAL;
uuencode
--------------------------------------------------------------------
begin 0 uuencode.txt\01215VAA="! I<R! T:&4@9&%T93\\`\012`\012end\012
(1 row)
edb=# SELECT UTL_ENCODE.UUDECODE
edb-# ('begin 0 uuencode.txt\01215VAA="! I<R! T:&4@9&%T93\\`\012`\012end\012')
edb-# FROM DUAL;
uudecode
-------------------
What is the date?
(1 row)
UUENCODE
UUENCODE 関数は、RAW データを uuencode 形式のエンコードされた文字列に変換します。 構文:
UUENCODE(r IN RAW, type IN INTEGER DEFAULT 1, filename IN VARCHAR2 DEFAULT NULL, permission IN VARCHAR2 DEFAULT NULL)
この関数は、RAW 値を返します。
パラメーター
パラメーター | 説明 |
---|---|
r | r パラメーターには、uuencode 形式に変換される RAW 文字列が含まれます。 |
type | type パラメーターは INTEGER 値または定数です。 この定数は、返される uuencoded 文字列の型を指定します。 デフォルト値: 1. 表 2が有効な値をリストします。 |
filename | filename パラメーターは、エンコードされた形式に埋め込むファイル名を指定する VARCHAR2 値です。 ファイル名を指定しない場合、UUENCODE 関数はエンコードされた形式で uuencode.txt のファイル名を含めます。 |
permission | permission パラメーターは、権限モードを指定する VARCHAR2 値です。 デフォルト値は NULL です。 |
値 | 定数 |
---|---|
1 | complete |
2 | header_piece |
3 | middle_piece |
4 | end_piece |
例
SET bytea_output = escape;
このコマンドは、印刷不可能な文字をエスケープし、BYTEA または RAW 値を読み取り可能な形式で表示するようサーバーに指示します。 詳細については、http://www.enterprisedb.com/docs/en/9.3/pg/datatype-binary.html で『Postgres Core Documentation』をご参照ください。
次の例では、UUENCODE 関数を使用して文字列をエンコードしてから、UUDECODE 関数を使用して文字列をデコードします。
edb=# SET bytea_output = escape;
SET
edb=# SELECT UTL_ENCODE.UUENCODE('What is the date?') FROM DUAL;
uuencode
--------------------------------------------------------------------
begin 0 uuencode.txt\01215VAA="! I<R! T:&4@9&%T93\\`\012`\012end\012
(1 row)
edb=# SELECT UTL_ENCODE.UUDECODE
edb-# ('begin 0 uuencode.txt\01215VAA="! I<R! T:&4@9&%T93\\`\012`\012end\012')
edb-# FROM DUAL;
uudecode
-------------------
What is the date?
(1 row)