---
title: "CAST_TO_BINARY_FLOAT - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: CAST_TO_BINARY_FLOAT CAST_TO_BINARY_FLOAT 函数用于将以 RAW 二进制形式表示的 BINARY_FLOAT 值转换为 BINARY_FLOAT 。 功能适用性 该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。 语法 …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.0

# CAST_TO_BINARY_FLOAT

更新时间：2026-04-10 11:58:36

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/700.reference/500.sql-reference/300.pl-reference/300.pl-oracle/1400.pl-system-package-oracle/27000.utl-raw-oracle/1100.cast-to-binary-float-oracle.md)  

`CAST_TO_BINARY_FLOAT` 函数用于将以 `RAW` 二进制形式表示的 `BINARY_FLOAT` 值转换为 `BINARY_FLOAT`。

#### 功能适用性

该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。

## 语法

```sql
UTL_RAW.CAST_TO_BINARY_FLOAT (
   r          IN RAW
   endianess  IN PLS_INTEGER DEFAULT 1)
RETURN BINARY_FLOAT;

```

## 参数说明

| **参数** | **说明** |
| --- | --- |
| r | `BINARY_FLOAT` 的二进制表示形式。 |
| endianess | 表示 `big_endian` 或 `little-endian` 的 `BINARY_INTEGER` 值。默认值为 `big_endian`。 |

## 返回值

返回 `BINARY_FLOAT` 值。

## 使用说明

- 如果 `RAW` 参数超过 4 个字节，则仅使用前 4 个字节，其余字节会被忽略。如果结果为 `-0`，则返回 `+0`。如果结果为 `NaN`，则返回值为 `BINARY_FLOAT_NAN`。
 - 如果 `RAW` 参数小于 4 个字节，则会引发异常 `VALUE_ERROR`。
 - 如下列表为一个 4 字节的 `BINARY_FLOAT` 值与 IEEE 754 单精度格式的映射关系：

  ```sql
  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`，`RAW` 参数的 4 个字节被直接复制到返回值 `BINARY_FLOAT` 中。如果用户在大端机上传递了 `big_endian`，或者在小端机上传递了`little_endian`，效果是一样的。

## 示例

```sql
obclient> SELECT UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD') FROM DUAL;
+-----------------------------------------+
| UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD') |
+-----------------------------------------+
|                         3.33317925E-038 |
+-----------------------------------------+
1 row in set

obclient> SELECT UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD', 2) FROM DUAL;
+-------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD',2) |
+-------------------------------------------+
|                          -6.08415641E-002 |
+-------------------------------------------+
1 row in set

obclient> SELECT UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD', 3) FROM DUAL;
+-------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_FLOAT('13579BD',3) |
+-------------------------------------------+
|                          -6.08415641E-002 |
+-------------------------------------------+
1 row in set

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
