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内のバイトを指します。Endianessrb0rb1rb2rb3big_endian fb0 fb1 fb2 fb3 little_endian 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