CAST_FROM_BINARY_FLOAT関数は、BINARY_FLOAT値をRAWのバイナリ形式で返すために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
UTL_RAW.CAST_FROM_BINARY_FLOAT(
n IN BINARY_FLOAT,
endianess IN PLS_INTEGER DEFAULT 1)
RETURN RAW;
パラメータの説明
| パラメータ | 説明 |
|---|---|
| n | BINARY_FLOAT 値。 |
| endianess | バイト順序を表す BINARY_INTEGER 値。この関数が認識できる定義定数は以下のとおりです:
big_endian です。machine_endian の設定は、大端マシン上の big_endian の効果と同じ、または小端マシン上の little_endian の効果と同じです。 |
戻り値
BINARY_FLOAT 値のバイナリ表現(RAW)を返します。
使用方法
以下の表は、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 | | --- | --- | --- | --- | --- | | ビッグエンディアン | fb0 | fb1 | fb2 | fb3 | | リトルエンディアン | fb3 | fb2 | fb1 | fb0 |machine-endianの場合、BINARY_FLOATパラメータの4バイトがそのままRAWの戻り値にコピーされます。ユーザーが大端マシンでbig_endianを渡した場合でも、小端マシンでlittle_endianを渡した場合でも、結果は同じです。
例
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_FLOAT(0) FROM DUAL;
+-----------------------------------+
| UTL_RAW.CAST_FROM_BINARY_FLOAT(0) |
+-----------------------------------+
| 00000000 |
+-----------------------------------+
1 row in set
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_FLOAT(1.234) FROM DUAL;
+---------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_FLOAT(1.234) |
+---------------------------------------+
| 3F9DF3B6 |
+---------------------------------------+
1 row in set
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_FLOAT(-1.234) FROM DUAL;
+----------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_FLOAT(-1.234) |
+----------------------------------------+
| BF9DF3B6 |
+----------------------------------------+
1 row in set