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

PolarDB:UTL_RAW

最終更新日:Sep 30, 2024

UTL_RAWパッケージでは、RAWデータ型を操作したり、RAWデータ型の長さを取得したりできます。

前提条件

管理者は、このパッケージを使用する前に、各ユーザーまたはユーザーグループに実行権限を付与する必要があります。

関数とストアドプロシージャ

関数またはストアドプロシージャ

タイプ

戻り値のデータ型

説明

CAST_TO_RAW(c IN VARCHAR2)

機能

RAW

VARCHAR2文字列をRAW値に変換します。

CAST_TO_VARCHAR2(r IN RAW)

機能

VARCHAR2

RAW値をVARCHAR2文字列に変換します。

CONCAT(r1 IN RAW, r2 IN RAW, r3 IN RAW,...)

機能

RAW

複数の RAW 値を単一の RAW 値に連結します。

CONVERT(r IN RAW、to_charset IN VARCHAR2、from_charset IN VARCHAR2)

機能

RAW

エンコードされたデータをあるエンコード形式から別のエンコード形式に変換し、その結果を RAW 値として返します。

LENGTH(r IN RAW)

機能

NUMBER

RAW 値の長さを返します。

SUBSTR(r IN RAW, pos IN INTEGER, len IN INTEGER)

機能

RAW

RAW値の部分文字列を返します。

説明

CAST_TO_RAW

説明

CAST_TO_RAW関数は、VARCHAR2文字列をRAW値に変換します。

CAST_TO_RAW(c VARCHAR2)
  • NULL以外の値が渡された場合、この関数はRAW値を返します。

  • NULLが渡された場合、この関数はNULLを返します。

Parameters

パラメーター

説明

c

RAW値に変換する文字列。 文字列はVARCHAR2型です。

CAST_TO_RAW関数を使用して、VARCHAR2文字列をRAW値に変換します。

DECLARE
  v VARCHAR2;
  r RAW;
BEGIN
  v := 'Accounts';
  dbms_output.put_line(v);
  r := UTL_RAW.CAST_TO_RAW(v);
  dbms_output.put_line(r);
END;

返される結果には、元の文字列と変換されたRAW値が含まれます。

Accounts
\x4163636f756e7473

CAST_TO_VARCHAR2

説明

CAST_TO_VARCHAR2関数は、RAWデータをVARCHAR2データに変換します。

CAST_TO_VARCHAR2(r RAW)
  • NULL以外の値が渡された場合、この関数はVARCHAR2値を返します。

  • NULLが渡された場合、この関数はNULLを返します。

Parameters

パラメーター

説明

r

VARCHAR2値に変換するRAW値。

CAST_TO_VARCHAR2関数を使用して、RAW値をVARCHAR2文字列に変換します。

DECLARE
  r RAW;
  v VARCHAR2;
BEGIN
  r := '\x4163636f756e7473';
  dbms_output.put_line(r);
  v := UTL_RAW.CAST_TO_VARCHAR2(r);
  dbms_output.put_line(v);
END;

返される結果には、元のRAW値と変換されたVARCHAR2文字列が含まれます。

\x4163636f756e7473
Accounts

CONCAT

説明

CONCAT関数は、複数のRAW値を単一のRAW値に連結する。

CONCAT(r1 RAW, r2 RAW, r3 RAW,...)

関数は RAW 値を返します。 Oracleの実装とは異なり、PolarDB for PostgreSQL (Compatible with Oracle) の実装は可変関数であり、連結できる値の数を制限しません。

Parameters

パラメーター

説明

r1, r2, r3,...

CONCATを連結するRAW値。

CONCAT関数を使用して、複数のRAW値を1つのRAW値に連結します。

SELECT UTL_RAW.CONCAT('\x61', '\x62', '\x63') FROM DUAL;        

サンプル結果:

  concat  
----------
 \x616263
(1 row)

コンベヤー

説明

CONVERT関数は、文字列をあるエンコード形式から別のエンコード形式に変換し、その結果をRAW値として返します。

CONVERT(r RAW, to_charset VARCHAR2, from_charset VARCHAR2)

関数は RAW 値を返します。

Parameters

パラメーター

説明

r

変換するRAW値。

to_charset

rを変換するエンコード形式の名前。

from_charset

rを変換するエンコード形式の名前。

CAST_TO_RAW関数を使用してVARCHAR2文字列アカウントをRAW値に変換し、convert関数を使用してRAW値をUTF-8からLATIN7に変換し、LATIN7からUTF-8に変換します。

DECLARE
   r RAW;
   v VARCHAR2;
BEGIN   
  v:= 'Accounts';
  dbms_output.put_line(v);
  r:= UTL_RAW.CAST_TO_RAW(v);
  dbms_output.put_line(r);
  r:= UTL_RAW.CONVERT(r, 'UTF8', 'LATIN7');
  dbms_output.put_line(r);
  r:= UTL_RAW.CONVERT(r, 'LATIN7', 'UTF8');
  dbms_output.put_line(r);
END;

この例では、VARCHAR2文字列、RAW値、および変換された値が返されます。

Accounts
\x4163636f756e7473
\x4163636f756e7473
\x4163636f756e7473

長さ

説明

LENGTH関数は、RAW値の長さを返します。

LENGTH(r RAW)

Parameters

パラメーター

説明

r

lengthを返す長さのRAW値。

  • RAW値の長さを返すには、LENGTH関数を使用します。

    SELECT UTL_RAW.LENGTH(UTL_RAW.CAST_TO_RAW('Accounts')) FROM DUAL;

    サンプル結果:

    length
    --------
    8
    (1 row)
  • マルチバイト文字を含むRAW値の長さを返すには、LENGTH関数を使用します。

    SELECT UTL_RAW.LENGTH(UTL_RAW.CAST_TO_RAW('独孤求败'));

    サンプル結果:

     length
    --------
         12
    (1 row)

SUBSTR

説明

SUBSTR関数は、RAW値の部分文字列を返します。

SUBSTR (r RAW, pos INTEGER, len INTEGER)

Parameters

パラメーター

説明

r

部分文字列を返すRAW値。

pos

RAW 値内で、返される部分文字列の最初のバイトのが置かれている位置。

  • posが0または1に設定されている場合、返される部分文字列はRAW値の最初のバイトから始まります。

  • posが1より大きい値に設定されている場合、返される部分文字列はposで指定されたバイトから始まります。 たとえば、posが3に設定されている場合、返される部分文字列は値の3番目のバイトから始まります。

  • posが負の値に設定されている場合、返される部分文字列はposで指定されたバイトから始まり、ソース値の最後から逆にカウントされます。 たとえば、posが-3に設定されている場合、返される部分文字列は、値の最後から逆にカウントされた3番目のバイトから始まります。

len

返される最大バイト数。

  • SUBSTR関数を使用して、RAW値の3バイト目から始まる部分文字列を返します。

    SET bytea_output = 'escape'; --- Output BYTEA data in the escape format.
    SELECT UTL_RAW.SUBSTR(UTL_RAW.CAST_TO_RAW('Accounts'), 3, 5) FROM DUAL;

    サンプル結果:

     substr
    --------  
    count
    (1 row)
  • SUBSTR関数を使用して、RAW値の最後から数えて5バイト目から始まる部分文字列を返します。

    SET bytea_output = 'escape'; --- Output BYTEA data in the escape format.
    SELECT UTL_RAW.SUBSTR(UTL_RAW.CAST_TO_RAW('Accounts'), -5 , 3) FROM DUAL;

    サンプル結果:

     substr
    --------
     oun
    (1 row)