首批通过分布式安全可靠测评,为关键业务系统打造
CAST_FROM_BINARY_FLOAT
更新时间:2026-04-10 11:58:36
CAST_FROM_BINARY_FLOAT 函数用于以 RAW 的二进制形式返回 BINARY_FLOAT 值。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 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中的字节。 | Endianess | rb0 | rb1 | rb2 | rb3 | | --- | --- | --- | --- | --- | | big_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