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
\x4163636f756e7473CAST_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
AccountsCONCAT
説明
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 値内で、返される部分文字列の最初のバイトのが置かれている位置。
|
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)