285 UTL_RAW
285.1 UTL_RAWの概要
通常のSQLファンクションは複数のRAW
で作動せず、PL/SQLはRAW
データ・タイプとCHAR
データ・タイプの間でのオーバーロードができないため、このパッケージが必要になります。UTL_RAW
には、各種のCOBOL数値形式を複数のRAW
の間で変換するサブプログラムも含まれています。
UTL_RAW
は、必ずしもデータベース環境に固有のものではなく、実際には他の環境でも使用できます。このため、DBMSのかわりに、UTLという接頭辞がパッケージに付けられます。
285.2 UTL_RAWの操作上のノート
UTL_RAW
によって、RAW
レコードは多くの要素で構成できます。RAW
データ・タイプを使用すると、文字セット変換は実行されず、RAW
は、リモート・プロシージャ・コールを介して転送されるときに元の形式で保持されます。
また、RAW
ファンクションによって、以前はhextoraw
ファンクションとrawtohex
ファンクションに限定されていたバイナリ・データを操作できます。
ノート:
データ・タイプに関するノート:
-
PLS_INTEGER
データ・タイプとBINARY_INTEGER
データ・タイプは同一です。このドキュメントでは、(表タイプ、レコード・タイプ、サブプログラムのパラメータ、サブプログラムの戻り値などの)参照情報でデータ・タイプを示す場合にはBINARY_INTEGER
を使用しますが、説明および例ではどちらも使用します。 -
INTEGER
データ・タイプとNUMBER(38)
データ・タイプも同一です。このドキュメントでは、INTEGER
のみを使用します。
285.3 UTL_RAWサブプログラムの要約
この表は、UTL_RAW
サブプログラムを示し、簡単に説明しています。
表285-1 UTL_RAWパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RAW値を |
|
|
|
最大12までの |
|
|
|
|
|
|
|
target |
|
|
|
|
|
|
|
|
|
値 |
285.3.1 BIT_ANDファンクション
このファンクションは、RAW r1
とRAW r2
の値でビット単位の論理演算ANDを実行し、AND演算後の結果RAW
を戻します。
構文
UTL_RAW.BIT_AND ( r1 IN RAW, r2 IN RAW) RETURN RAW;
プラグマ
pragma restrict_references(bit_and, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-2 BIT_ANDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
戻り値
表285-3 BIT_ANDファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
|
入力パラメータ |
使用上のノート
r1
とr2の長さが異なる場合、AND演算は、短い方のRAW
の最終バイト後に終了し、長い方のRAW
の未処理部分は部分結果に追加されます。したがって、結果の長さは、2つの入力RAW
の長い方と同じ長さになります。
285.3.2 BIT_COMPLEMENTファンクション
このファンクションは、RAW r
の値でビット単位の論理演算補数を実行し、補数演算後の結果RAW
を戻します。結果の長さは、入力RAW r
の長さと等しくなります。
構文
UTL_RAW.BIT_COMPLEMENT ( r IN RAW) RETURN RAW;
プラグマ
pragma restrict_references(bit_complement, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-4 BIT_COMPLEMENTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
補数演算を実行する |
戻り値
表285-5 BIT_COMPLEMENTファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
|
入力パラメータ |
285.3.3 BIT_ORファンクション
このファンクションは、RAW r1
とRAW r2
の値でビット単位の論理演算ORを実行し、OR演算後の結果RAW
を戻します。
構文
UTL_RAW.BIT_OR ( r1 IN RAW, r2 IN RAW) RETURN RAW;
プラグマ
pragma restrict_references(bit_or, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-6 BIT_ORファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
戻り値
表285-7 BIT_ORファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
|
入力パラメータ |
使用上のノート
r1
とr2
の長さが異なる場合、OR演算は、短い方のRAW
の最終バイト後に終了し、長い方のRAW
の未処理部分は部分結果に追加されます。したがって、結果の長さは、2つの入力RAW
の長い方と同じ長さになります。
285.3.4 BIT_XORファンクション
このファンクションは、RAW r1
とRAW r2
の値でビット単位の論理演算XORを実行し、XOR演算後の結果RAW
を戻します。
構文
UTL_RAW.BIT_XOR ( r1 IN RAW, r2 IN RAW) RETURN RAW;
プラグマ
pragma restrict_references(bit_xor, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-8 BIT_XORファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
戻り値
表285-9 BIT_XORファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
|
入力パラメータ |
使用上のノート
r1
とr2
の長さが異なる場合、XOR演算は、短い方のRAW
の最終バイト後に終了し、長い方のRAW
の未処理部分は部分結果に追加されます。したがって、結果の長さは、2つの入力RAW
の長い方と同じ長さになります。
285.3.5 CAST_FROM_BINARY_DOUBLEファンクション
このファンクションは、BINARY_DOUBLE
値のRAW
バイナリ表現を戻します。
構文
UTL_RAW.CAST_FROM_BINARY_DOUBLE( n IN BINARY_DOUBLE, endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW;
プラグマ
pragma restrict_references(cast_from_binary_double, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-10 CAST_FROM_BINARY_DOUBLEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
エンディアンを示す |
戻り値
BINARY_DOUBLE
の値のバイナリ表現。入力がNULL
の場合は、NULL
を戻します。
使用上のノート
-
8バイトの
binary_double
値からIEEE 754倍精度形式へのマッピングは、次のとおりです。byte 0: bit 63 ~ bit 56 byte 1: bit 55 ~ bit 48 byte 2: bit 47 ~ bit 40 byte 3: bit 39 ~ bit 32 byte 4: bit 31 ~ bit 24 byte 5: bit 23 ~ bit 16 byte 6: bit 15 ~ bit 8 byte 7: bit 7 ~ bit 0
-
endianessパラメータでは、
BINARY_DOUBLE
のバイトからRAW
のバイトへのマッピング方法が記述されます。次のマトリックスでは、rb0からrb7がRAWのバイトを参照し、db0からdb7がBINARY_DOUBLE
のバイトを参照しています。エンディアン rb0 rb1 rb2 rb3 rb4 rb5 rb6 rb7 big_endian
db0
db1
db2
db3
db4
db5
db6
db7
little_endian
db7
db6
db5
db4
db3
db2
db1
db0
-
machine-endianの場合、
BINARY_DOUBLE
引数の8バイトがRAW
の戻り値に直接コピーされます。big-endianマシン上のbig_endian
またはlittle-endianマシン上のlittle_endian
を渡した場合も同じです。
285.3.6 CAST_FROM_BINARY_FLOATファンクション
このファンクションは、BINARY_FLOAT
値のRAW
バイナリ表現を戻します。
構文
UTL_RAW.CAST_FROM_BINARY_FLOAT( n IN BINARY_FLOAT, endianess IN PLS_INTEGER DEFAULT 1) RETURN RAW;
プラグマ
pragma restrict_references(cast_from_binary_float, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-11 CAST_FROM_BINARY_FLOATファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
エンディアンを示す |
戻り値
BINARY_FLOAT
の値のバイナリ表現(RAW)。入力がNULL
の場合は、NULL
を戻します。
使用上のノート
-
4バイトの
binary_float
値からIEEE 754単精度形式へのマッピングは、次のとおりです。byte 0: bit 31 ~ bit 24 byte 1: bit 23 ~ bit 16 byte 2: bit 15 ~ bit 8 byte 3: bit 7 ~ bit 0
-
endianessパラメータでは、
BINARY_FLOAT
のバイトからRAW
のバイトへのマッピング方法が記述されます。次のマトリックスでは、rb0からrb3がRAW
のバイトを参照し、fb0からfb3がBINARY_FLOAT
のバイトを参照しています。エンディアン rb0 rb1 rb2 rb3 big_endian
fb0
fb1
fb2
fb3
little_endian
fb3
fb2
fb1
fb0
-
machine-endianの場合、
BINARY_FLOAT
引数の4バイトがRAW
の戻り値に直接コピーされます。big-endianマシン上のbig_endian
またはlittle-endianマシン上のlittle_endian
を渡した場合も同じです。
285.3.7 CAST_FROM_BINARY_INTEGERファンクション
このファンクションは、BINARY_INTEGER
値のRAW
バイナリ表現を戻します。
構文
UTL_RAW.CAST_FROM_BINARY_INTEGER ( n IN BINARY_INTEGER endianess IN PLS_INTEGER DEFAULT BIG_ENDIAN) RETURN RAW;
プラグマ
pragma restrict_references(cast_from_binary_integer, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-12 CAST_FROM_BINARY_INTEGERファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
エンディアンを示す |
戻り値
BINARY_INTEGER
の値のバイナリ表現。
285.3.8 CAST_FROM_NUMBERファンクション
このファンクションは、NUMBER
値のRAW
バイナリ表現を戻します。
構文
UTL_RAW.CAST_FROM_NUMBER ( n IN NUMBER) RETURN RAW;
プラグマ
pragma restrict_references(cast_from_number, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-13 CAST_FROM_NUMBERファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
NUMBER
の値のバイナリ表現。
285.3.9 CAST_TO_BINARY_DOUBLEファンクション
このファンクションは、BINARY_DOUBLE
のRAWバイナリ表現をBINARY_DOUBLE
に変換します。
構文
UTL_RAW.CAST_TO_BINARY_DOUBLE ( r IN RAW endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_DOUBLE;
プラグマ
pragma restrict_references(cast_to_binary_double, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-14 CAST_TO_BINARY_DOUBLEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
big-endianまたはlittle-endianのアーキテクチャを表す |
戻り値
BINARY_DOUBLE
値。
使用上のノート
-
RAW
引数が8バイトを超える場合は、最初の8バイトだけが使用され、残りのバイトは無視されます。結果が-0
の場合は、+0
が戻されます。結果がNaN
の場合は、BINARY_DOUBLE_NAN
の値が戻されます。 -
RAW
引数が8バイト未満の場合は、VALUE_ERROR
例外が発生します。 -
8バイトのbinary_double値からIEEE 754倍精度形式へのマッピングは、次のとおりです。
byte 0: bit 63 ~ bit 56 byte 1: bit 55 ~ bit 48 byte 2: bit 47 ~ bit 40 byte 3: bit 39 ~ bit 32 byte 4: bit 31 ~ bit 24 byte 5: bit 23 ~ bit 16 byte 6: bit 15 ~ bit 8 byte 7: bit 7 ~ bit 0
-
endianessパラメータでは、
BINARY_DOUBLE
のバイトからRAW
のバイトへのマッピング方法が記述されます。次のマトリックスでは、rb0からrb7がRAWのバイトを参照し、db0からdb7がBINARY_DOUBLE
のバイトを参照しています。アーキテクチャ rb0 rb1 rb2 rb3 rb4 rb5 rb6 rb7 big_endian
db0
db1
db2
db3
db4
db5
db6
db7
little_endian
db7
db6
db5
db4
db3
db2
db1
db0
-
machine-endianの場合、
RAW
引数の8バイトがBINARY_DOUBLE
の戻り値に直接コピーされます。big-endianマシン上のbig_endian
またはlittle-endianマシン上のlittle_endian
を渡した場合も同じです。
285.3.10 CAST_TO_BINARY_FLOATファンクション
このファンクションは、BINARY_FLOAT
のRAWバイナリ表現をBINARY_FLOAT
に変換します。
構文
UTL_RAW.CAST_TO_BINARY_FLOAT ( r IN RAW endianess IN PLS_INTEGER DEFAULT 1) RETURN BINARY_FLOAT;
プラグマ
pragma restrict_references(cast_to_binary_float, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-15 CAST_TO_BINARY_FLOATファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
big-endianまたはlittle-endianのアーキテクチャを表す |
戻り値
BINARY_FLOAT
値。
使用上のノート
-
RAW
引数が4バイトを超える場合は、最初の4バイトだけが使用され、残りのバイトは無視されます。結果が-0の場合は、+0が戻されます。結果がNaNの場合は、BINARY_FLOAT_NAN
の値が戻されます。 -
RAW
引数が4バイト未満の場合は、VALUE_ERROR
例外が発生します。 -
4バイトの
binary_float
値からIEEE 754単精度形式へのマッピングは、次のとおりです。byte 0: bit 31 ~ bit 24 byte 1: bit 23 ~ bit 16 byte 2: bit 15 ~ bit 8 byte 3: bit 7 ~ bit 0
-
endianessパラメータでは、
BINARY_FLOAT
のバイトからRAW
のバイトへのマッピング方法が記述されます。次のマトリックスでは、rb0からrb3がRAW
のバイトを参照し、fb0からfb3がBINARY_FLOAT
のバイトを参照しています。エンディアン rb0 rb1 rb2 rb3 big_endian
fbo
fb1
fb2
fb3
little_endian
fb3
fb2
fb1
fb0
-
machine-endianの場合、
RAW
引数の4バイトがBINARY_FLOAT
の戻り値に直接コピーされます。big-endianマシン上のbig_endian
またはlittle-endianマシン上のlittle_endian
を渡した場合も同じです。
285.3.11 CAST_TO_BINARY_INTEGERファンクション
このファンクションは、BINARY_INTEGER
のRAWバイナリ表現をBINARY_INTEGER
に変換します。
構文
UTL_RAW.CAST_TO_BINARY_INTEGER ( r IN RAW endianess IN PLS_INTEGER DEFAULT BIG_ENDIAN) RETURN BINARY_INTEGER;
プラグマ
pragma restrict_references(cast_to_binary_integer, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-16 CAST_TO_BINARY_INTEGERファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
big-endianまたはlittle-endianのアーキテクチャを表す |
戻り値
BINARY_INTEGER
値。
285.3.12 CAST_TO_NUMBERファンクション
このファンクションは、NUMBER
のRAWバイナリ表現をNUMBER
に変換します。
構文
UTL_RAW.CAST_TO_NUMBER ( r IN RAW) RETURN NUMBER;
プラグマ
pragma restrict_references(cast_to_number, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-17 CAST_TO_NUMBERファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
NUMBER
の値。
285.3.13 CAST_TO_NVARCHAR2ファンクション
このファンクションは、一定数のデータ・バイトを使用して表したRAW
値を、同じ数のデータ・バイトのNVARCHAR2
値に変換します。
ノート:
NVARCHAR2
への変換時、そのNVARCHAR2
値内の文字に対して現行のグローバリゼーション・サポート文字セットが使用されます。
構文
UTL_RAW.CAST_TO_NVARCHAR2 ( r IN RAW) RETURN NVARCHAR2;
プラグマ
pragma restrict_references(cast_to_NVARCHAR2, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-18 CAST_TO_NVARCHAR2ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
表285-19 CAST_TO_NVARCHAR2ファンクションの戻り値
戻り値 | 説明 |
---|---|
|
入力 |
|
入力パラメータ |
285.3.14 CAST_TO_RAWファンクション
このファンクションは、一定数のデータ・バイトを使用して表したVARCHAR2
値を、同じ数のデータ・バイトのRAW
値に変換します。データ自体は変更されませんが、そのデータ・タイプはRAW
データ・タイプに再変換されます。
構文
UTL_RAW.CAST_TO_RAW ( c IN VARCHAR2) RETURN RAW;
プラグマ
pragma restrict_references(cast_to_raw, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-20 CAST_TO_RAWファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
表285-21 CAST_TO_RAWファンクションの戻り値
戻り値 | 説明 |
---|---|
|
先行する長さのフィールドのない、入力 |
|
入力パラメータ |
285.3.15 CAST_TO_VARCHAR2ファンクション
このファンクションは、一定数のデータ・バイトを使用して表したRAW
値を、同じ数のデータ・バイトのVARCHAR2
値に変換します。
ノート:
VARCHAR2
への変換時、そのVARCHAR2
内の文字に対して現行のグローバリゼーション・サポート文字セットが使用されます。
構文
UTL_RAW.CAST_TO_VARCHAR2 ( r IN RAW) RETURN VARCHAR2;
プラグマ
pragma restrict_references(cast_to_VARCHAR2, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-22 CAST_TO_VARCHAR2ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
表285-23 CAST_TO_VARCHAR2ファンクションの戻り値
戻り値 | 説明 |
---|---|
|
入力 |
|
入力パラメータ |
285.3.16 COMPAREファンクション
このファンクションは、2つのRAW
値を比較します。それぞれの値の長さが異なる場合、短い方の値は、オプションのpad
パラメータに従って右側に拡張されます。
構文
UTL_RAW.COMPARE ( r1 IN RAW, r2 IN RAW, pad IN RAW DEFAULT NULL) RETURN NUMBER;
プラグマ
pragma restrict_references(compare, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-24 COMPAREファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
比較する1番目の |
|
比較する2番目の |
|
これはオプションのパラメータです。 |
戻り値
表285-25 COMPAREファンクションの戻り値
戻り値 | 説明 |
---|---|
|
最初に不一致になったバイト位置(1から番号付けされている)と等しい番号。 |
285.3.17 CONCATファンクション
このファンクションは、最大12までのRAW
を単一のRAW
に連結します。連結したサイズが32Kを超える場合は、エラーが戻ります。
構文
UTL_RAW.CONCAT ( r1 IN RAW DEFAULT NULL, r2 IN RAW DEFAULT NULL, r3 IN RAW DEFAULT NULL, r4 IN RAW DEFAULT NULL, r5 IN RAW DEFAULT NULL, r6 IN RAW DEFAULT NULL, r7 IN RAW DEFAULT NULL, r8 IN RAW DEFAULT NULL, r9 IN RAW DEFAULT NULL, r10 IN RAW DEFAULT NULL, r11 IN RAW DEFAULT NULL, r12 IN RAW DEFAULT NULL) RETURN RAW;
プラグマ
pragma restrict_references(concat, WNDS, RNDS, WNPS, RNPS);
パラメータ
r1
....r12
は、連結するRAW
項目です。
戻り値
表285-26 CONCATファンクションの戻り値
戻り値 | 説明 |
---|---|
|
連結された項目。 |
例外
入力値の合計の長さがRAW
の最大許容長である32767バイトを超えると、エラーが発生します。
285.3.18 CONVERTファンクション
このファンクションは、RAW
r
を文字セットfrom_charset
から文字セットto_charset
に変換し、結果のRAW
を戻します。
from_charset
とto_charset
は両方とも、Oracleサーバーに定義されているサポート・キャラクタのセットである必要があります。
構文
UTL_RAW.CONVERT ( r IN RAW, to_charset IN VARCHAR2, from_charset IN VARCHAR2) RETURN RAW;
プラグマ
pragma restrict_references(convert, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-27 CONVERTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
|
|
|
|
戻り値
表285-28 CONVERTファンクションの戻り値
戻り値 | 説明 |
---|---|
|
指定した文字セットに従って変換されたバイト列 |
例外
表285-29 CONVERTファンクションの例外
エラー | 説明 |
---|---|
|
PL/SQL: 数値または値のエラー |
|
この文字セット変換はサポートされません。 |
|
NLSデータファイルにアクセスできないか、無効な環境が指定されました。 |
使用上のノート
-
NLS_LANGパラメータ・フォームlanguage_territory.character setは、
to_charset
およびfrom_charset
にも受け入れられます。ただし、このフォームは非推奨のため、使用しないことをお薦めします。languageおよびterritoryは、このサブプログラムでは無視されます。 -
変換後の値が
RAW
値の最大長である32767バイトを超えている場合は、警告なしで切り捨てられます。to_charset
とfrom_charset
のすべての可能な組合せでこの切捨てを避けたい場合は、floor(32767/4) = 8191バイトよりも長い値を変換しないでください。変換先の文字セットto_charset
の最大文字幅が判明している場合は、それを使用して制限をあまりペシミスティックでない値に拡大できます。たとえば、変換先の文字セットがZHS16GBKの場合、その最大限安全なソース文字列長さはfloor(32767/2) = 16383バイトになります。シングルバイトの変換先文字セットの場合、切捨ては一切必要ありません。
285.3.19 COPIESファンクション
このファンクションは、r
をn
回コピーして連結したものを戻します。
構文
UTL_RAW.COPIES ( r IN RAW, n IN NUMBER) RETURN RAW;
プラグマ
pragma restrict_references(copies, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-30 COPIESファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
コピーする |
|
|
戻り値
このファンクションは、n
回コピーしたRAW
を戻します。
例外
表285-31 COPIESファンクションの例外
エラー | 説明 |
---|---|
|
次のいずれかです。 - - - 結果の長さが、 |
285.3.20 LENGTHファンクション
このファンクションは、RAW r
の長さをバイトで戻します。
構文
UTL_RAW.LENGTH ( r IN RAW) RETURN NUMBER;
プラグマ
pragma restrict_references(length, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-32 LENGTHファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
長さを測定する |
戻り値
表285-33 LENGTHファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
285.3.21 OVERLAYファンクション
このファンクションは、target RAW
の指定部分をoverlay_str
RAW
でオーバーレイし、target
の位置pos
バイトから始まるlen
バイト分を処理します。
構文
UTL_RAW.OVERLAY ( overlay_str IN RAW, target IN RAW, pos IN BINARY_INTEGER DEFAULT 1, len IN BINARY_INTEGER DEFAULT NULL, pad IN RAW DEFAULT NULL) RETURN RAW;
プラグマ
pragma restrict_references(overlay, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-34 OVERLAYファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
targetをオーバーレイするために使用するバイト列。 |
|
オーバーレイするバイト列。 |
|
オーバーレイを開始する、target内での位置(1から番号付けされている)。 |
|
オーバーレイするtargetバイトの数。 |
|
オーバーレイ |
デフォルトとオプション・パラメータ
表285-35 OVERLAYファンクションのオプション・パラメータ
オプション・パラメータ | 説明 |
---|---|
|
1 |
|
|
|
x'00' |
戻り値
表285-36 OVERLAYファンクションの戻り値
戻り値 | 説明 |
---|---|
|
指定したとおりにオーバーレイされたtargetの |
使用上のノート
overlay_str
がlen
バイト未満の場合は、pad
バイト列を使用してlen
バイトまで拡張されます。overlay_str
がlen
バイトを超える場合は、overlay_str
の余分なバイトは無視されます。target
の位置pos
から始まるlen
バイトがtarget
の長さを超える場合、overlay_str
全体を含む長さまでtarget
が拡張されます。
len
を指定する場合は、0
(ゼロ)以上にする必要があります。pos
を指定する場合は、1
以上にする必要があります。pos
がtarget
の長さを超える場合、target
はpad
バイト列を使用してpos
の位置まで埋め込まれます。さらに、target
はoverlay_str
バイト列を使用して拡張されます。
例外
表285-37 OVERLAYファンクションの例外
エラー | 説明 |
---|---|
|
次のいずれかです。 - - targetが不明か、未定義です。 - targetの長さが、 - - |
285.3.22 REVERSEファンクション
このファンクションは、RAW r
のバイト順序を、最後から最初に逆転させます。
たとえば、x'0102F3'はx'F30201'になり、'xyz'は'zyx'に逆転されます。結果は、入力RAW
と同じ長さになります。
構文
UTL_RAW.REVERSE ( r IN RAW) RETURN RAW;
プラグマ
pragma restrict_references(reverse, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-38 REVERSEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
逆転する |
戻り値
表285-39 REVERSEファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
例外
表285-40 REVERSEファンクションの例外
エラー | 説明 |
---|---|
|
|
285.3.23 SUBSTRファンクション
このファンクションは、RAW
r
のpos
からlen
バイトを戻します。
構文
UTL_RAW.SUBSTR ( r IN RAW, pos IN BINARY_INTEGER, len IN BINARY_INTEGER DEFAULT NULL) RETURN RAW;
プラグマ
pragma restrict_references(substr, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-41 SUBSTRファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
一部が抽出される |
|
|
|
|
デフォルトとオプション・パラメータ
表285-42 SUBSTRファンクションのオプション・パラメータ
オプション・パラメータ | 説明 |
---|---|
|
位置 |
戻り値
表285-43 SUBSTRファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
|
入力パラメータ |
使用上のノート
-
pos
が正の値の場合、SUBSTR
はr
の初めからカウントして最初のバイトを検索します。pos
が負の値の場合、SUBSTR
はr
の最後から逆方向にカウントします。pos
の値は0(ゼロ)に指定できません。 -
len
が省略された場合、SUBSTR
はr
の終わりまですべてのバイトを戻します。len
の値は1未満に指定できません。
例外
表285-44 SUBSTRファンクションの例外
エラー | 説明 |
---|---|
|
次の場合は
|
285.3.24 TRANSLATEファンクション
このファンクションは、RAWs from_set
とto_set
のバイト列変換に従って、入力RAW r
内のバイト列を変換します。
r
内のバイト列がfrom_set
内のバイト列と一致すると、to_set
内の対応する位置にあるバイト列に置換され、一致しないと削除されます。
r
内のバイト列がfrom_set
で未定義の場合は、結果にコピーされます。from_set
にある最初(最左端)のバイト列のみ使用されます。後続の複製部分はスキャンされずに無視されます。
構文
UTL_RAW.TRANSLATE ( r IN RAW, from_set IN RAW, to_set IN RAW) RETURN RAW;
ノート:
コール順序のto_set
およびfrom_set
が、TRANSLITERATE
と比較して逆になっていることに注意してください。
プラグマ
pragma restrict_references(translate, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-45 TRANSLATEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
|
変換する |
|
対応する |
戻り値
表285-46 TRANSLATEファンクションの戻り値
戻り値 | 説明 |
---|---|
|
変換されたバイト列。 |
使用上のノート
-
to_set
がfrom_set
より短い場合、from_set
の余分なバイト列に対応する変換バイト列はありません。このようなfrom_set
バイト列に一致する入力RAW
のバイト列は、変換されないか、結果に含まれません。これらのバイト列は、事実上NULL
に変換されます。 -
to_set
がfrom_set
より長い場合、to_set
の余分なバイト列は無視されます。 -
バイト値が
from_set
で繰り返されている場合、その繰返し部分は無視されます。
ノート:
TRANSLITERATEファンクションとは、次の点で異なります。
-
コール順序で
to_set
パラメータの前にfrom_set
パラメータがあります。 -
from_set
に存在するがto_set
に対応する値が存在しないr
のバイト列は、変換されないか、結果に含まれません。 -
結果の
RAW
値は、入力RAW
値より短い場合があります。
TRANSLATE
とTRANSLITERATE
の機能は、to_set
のバイト数がfrom_set
より少ない場合にのみ異なることに注意してください。
例外
表285-47 TRANSLATEファンクションの例外
エラー | 説明 |
---|---|
|
次のいずれかです。 - - - |
285.3.25 TRANSLITERATEファンクション
このファンクションは、from_setとto_set
のバイト列変換に従って、入力
RAW
r
内のバイト列を変換します。
r
内の連続するバイト列がfrom_set
内で検索され、見つからない場合は、変更しないまま結果RAW
にコピーされます。見つかった場合、そのバイト列は、to_set
の対応するバイト列、対応するバイト列が存在しない場合はpad
バイト列のいずれかに結果RAW
内で置換されます。
r
内のバイト列がfrom_set
で未定義の場合は、結果にコピーされます。from_set
にある最初(最左端)のバイト列のみ使用されます。後続の複製部分はスキャンされずに無視されます。結果RAW
は、常にr
と同じ長さになります。
構文
UTL_RAW.TRANSLITERATE ( r IN RAW, to_set IN RAW DEFAULT NULL, from_set IN RAW DEFAULT NULL, pad IN RAW DEFAULT NULL) RETURN RAW;
ノート:
コール順序のto_set
およびfrom_set
が、TRANSLATE
と比較して逆になっていることに注意してください。
プラグマ
pragma restrict_references(transliterate, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-48 TRANSLITERATEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
|
対応する |
|
変換する |
|
to-setが |
デフォルトとオプション・パラメータ
表285-49 TRANSLITERATEファンクションのオプション・パラメータ
オプション・パラメータ | 説明 |
---|---|
|
|
|
|
|
|
戻り値
表285-50 TRANSLITERATEファンクションの戻り値
戻り値 | 説明 |
---|---|
|
変換されたバイト列。 |
使用上のノート
-
to_set
がfrom_set
より短い場合、from_set
の余分なバイト列に対応する変換バイト列はありません。このようなfrom_set
バイト列に一致する入力RAW
のバイト列は、結果でpadバイト列に変換されます。 -
to_set
がfrom_set
より長い場合、to_set
の余分なバイト列は無視されます。 -
バイト値が
from_set
で繰り返されている場合、その繰返し部分は無視されます。
ノート:
TRANSLATEファンクションとは、次の点で異なります。
-
コール順序で
from_set
パラメータの前にto_set
パラメータがあります。 -
from_set
に存在するがto_set
に対応する値が存在しないr
のバイト列は、結果でpadバイト列によって置換されます。 -
結果の
RAW
値は、常に入力RAW
値と同じ長さになります。
TRANSLATE
とTRANSLITERATE
の機能は、to_set
のバイト数がfrom_set
より少ない場合にのみ異なることに注意してください。
例外
表285-51 TRANSLITERATEファンクションの例外
エラー | 説明 |
---|---|
|
|
285.3.26 XRANGEファンクション
このファンクションは、指定したバイト・コードで開始および終了する連続した1バイト・エンコードを含むRAW value
を戻します。指定するバイト・コードは、シングルバイトのRAW
値である必要があります。start_byte
値がend_byte
値より大きい場合、結果バイトの連続はstart_byte
で始まり、x'FF'
からx'00'
に折り返してend_byte
で終わります。
構文
UTL_RAW.XRANGE ( start_byte IN RAW DEFAULT NULL, end_byte IN RAW DEFAULT NULL) RETURN RAW;
プラグマ
pragma restrict_references(xrange, WNDS, RNDS, WNPS, RNPS);
パラメータ
表285-52 XRANGEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
戻される連続値の最初のバイト・コード値。デフォルトは、 |
|
戻される連続値の最後のバイト・コード値。デフォルトは、 |
戻り値
表285-53 XRANGEファンクションの戻り値
戻り値 | 説明 |
---|---|
|
連続した有効な1バイトの16進数コード。 |