UTL_RAW システムパッケージは、RAW データ型を操作するためのSQL関数を提供します。
通常のSQL関数は RAW データに対して操作できず、PLは RAW と CHAR データ型間でのオーバーロードを許可しないため、UTL_RAW システムパッケージは不可欠です。
UTL_RAW はデータベース環境でのみ使用されるわけではないため、このシステムパッケージには DBMS ではなくプレフィックス UTL が付けられています。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
UTL_RAWの使用方法
UTL_RAWは、複数の要素で構成されるRAW「レコード」を許可します。RAWデータ型を使用することで、文字セット変換が実行されず、リモート呼び出し時にRAWの元の形式が保持されます。
UTL_RAWサブルーチンの概要
次の表は、OceanBaseデータベースの現行バージョンでサポートされているUTL_RAWサブルーチンとその簡潔な説明を示しています。
| サブルーチン | 説明 |
|---|---|
| BIT_AND | RAW r1 と RAW r2 の値に対してビット単位の論理「AND」を実行し、元の「AND」結果を返します。 |
| BIT_COMPLEMENT | RAW r の値に対してビット単位の論理「補数」を実行し、「補数」結果 RAW を返します。 |
| BIT_OR | RAW r1 と RAW r2 の値に対してビット単位の論理「OR」を実行し、元の「OR」結果を返します。 |
| BIT_XOR | RAW r1 と RAW r2 の値に対してビット単位の論理「XOR」を実行し、元の「XOR」結果を返します。 |
| CAST_FROM_BINARY_DOUBLE | BINARY_DOUBLE 値を RAW のバイナリ形式で返します。 |
| CAST_FROM_BINARY_FLOAT | BINARY_FLOAT 値を RAW のバイナリ形式で返します。 |
| CAST_FROM_BINARY_INTEGER | BINARY_INTEGER 値を RAW のバイナリ形式で返します。 |
| CAST_FROM_NUMBER | NUMBER 値を RAW のバイナリ形式で返します。 |
| CAST_TO_BINARY_DOUBLE | RAW のバイナリ形式で表される BINARY_DOUBLE 値を BINARY_DOUBLE に変換します。 |
| CAST_TO_BINARY_FLOAT | RAW のバイナリ形式で表される BINARY_FLOAT 値を BINARY_FLOAT に変換します。 |
| CAST_TO_BINARY_INTEGER | RAW のバイナリ形式で表される BINARY_INTEGER 値を BINARY_INTEGER に変換します。 |
| CAST_TO_NUMBER | RAW のバイナリ形式で表される NUMBER 値を NUMBER に変換します。 |
| CAST_TO_RAW | VARCHAR2 値を RAW 値に変換します。 |
| CAST_TO_VARCHAR2 | RAW 値を VARCHAR2 値に変換します。 |
| COPIES | 連結された r の n 個のコピーを返します。 |
| COMPARE | RAW r1 と RAW r2 を比較します。 |
| CONCAT | 最大12個の RAW を1つの RAW に連結します。 |
| LENGTH | RAW r のバイト長を返します。 |
| REVERSE | RAW r 内のバイトシーケンスを端から端まで逆転させます。 |
| SUBSTR | len バイト、RAW r の pos ビット目から計算して返します。 |
| TRANSLATE | RAW タイプのデータをバイトごとに変換するために使用されます。 |