すべてのプロダクト
Search
ドキュメントセンター

PolarDB:UTL_ENCODE

最終更新日:Jun 05, 2024

UTL_ENCODEパッケージは、エンコードおよびデコード機能を提供します。

BASE64_ENCODE

BASE64_ENCODE関数は、RAW文字列またはTEXT文字列をBase64-encoded文字列に変換します。 BASE64_ENCODE関数には、次の2種類の構文を使用できます。

  • BASE64_ENCODE(r IN RAW)
  • BASE64_ENCODE (OIDのloid)

この関数は、RAW値またはオブジェクトIDを返します。

パラメーター

パラメーター説明
rBase64-encoded文字列に変換するRAW文字列を指定します。
loidBase64-encoded文字列に変換するラージオブジェクトのIDを指定します。

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたはRAW値を読み取り可能な形式で画面に表示するようにサーバーに指示する必要があります。
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 値を返します。

パラメーター

パラメーター説明
rBASE64_ENCODE関数を使用してエンコードされた後の文字列。

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたはRAW値を読み取り可能な形式で画面に表示するようにサーバーに指示する必要があります。
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文字列のエンコードに使用されるエンコードタイプを指定します。 有効な値:
  • Q: quoted-printableエンコーディング
  • B: Base64-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 値を返します。

パラメーター

パラメーター説明
rquoted-printable形式でエンコードする文字列を指定します。

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたはRAW値を読み取り可能な形式で画面に表示するようにサーバーに指示する必要があります。
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 値を返します。

パラメーター

パラメーター説明
rQUOTED_PRINTABLE_ENCODE関数を使用してエンコードする文字列を指定します。 文字列はRAW値です。

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたは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 です。
encodingTEXT_ENCODE関数によって使用されるエンコードタイプを指定します。 有効な値:
  • Q: quoted-printableエンコーディング
  • B: Base64エンコーディング
説明 デフォルトでは、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値を返します。

パラメーター

パラメーター説明
bufTEXT_ENCODE関数を使用してエンコードされた文字列を指定します。
encode charset変換用に指定した文字セットを指定します。 デフォルト値は NULL です。
encodingTEXT_DECODE関数によって使用されるエンコードタイプを指定します。 有効な値:
  • UTL_ENCODE.QUOTED_PRINTABLE: quoted-printable encoding
  • UTL_ENCODE.BASE64: Base64エンコーディング
説明 デフォルトでは、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 値を返します。

パラメーター

パラメーター説明
ruuencoded文字列に変換する文字列を指定します。
type返されるUUENCODED文字列の型を指定します。 デフォルト値は 1 です。 詳細については、「Type」をご参照ください。
filenameuuencoded文字列に含めるファイル名を指定します。 ファイル名を指定しない場合、UUENCODE関数はエンコードされた文字列にファイル名uuencode.txtを含めます。
permission権限モードを指定します。 デフォルト値は NULL です。
表1. タイプ
有効値定数
1complete
2header_piece
3middle_piece
4end_piece

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたはRAW値を読み取り可能な形式で画面に表示するようにサーバーに指示する必要があります。
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 値を返します。

パラメーター

パラメーター説明
rRAW値に変換するUUENCODED文字列を指定します。

説明 次の例を実行する前に、次のコマンドを実行して、印刷できない文字をエスケープし、BYTEAまたはRAW値を読み取り可能な形式で画面に表示するようにサーバーに指示する必要があります。
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シーケンスのデコード中に予期しない "="