---
title: "CAST_TO_BINARY_DOUBLE - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: CAST_TO_BINARY_DOUBLE CAST_TO_BINARY_DOUBLE 函数用于将以 RAW 二进制形式表示的 BINARY_DOUBLE 值转换为 BINARY_DOUBLE 。 功能适用性 该内容仅适用于 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_DOUBLE

更新时间：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/1000.cast-to-binary-double-oracle.md)  

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

#### 功能适用性

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

## 语法

```sql
UTL_RAW.CAST_TO_BINARY_DOUBLE (
   r          IN RAW
   endianess  IN PLS_INTEGER DEFAULT 1)
RETURN BINARY_DOUBLE;

```

## 参数说明

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

## 返回值

返回 `BINARY_DOUBLE` 值。

## 使用说明

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

  ```sql
  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` 中的字节。 | **endianess** | **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`，或者在小端机上传递了 `little_endian`，效果是一样的。

## 示例

```sql
obclient> SELECT UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF') FROM DUAL;
+---------------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF') |
+---------------------------------------------------+
|                           3.4750462962832636E-308 |
+---------------------------------------------------+
1 row in set

obclient> SELECT UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF', 1) FROM DUAL;
+-----------------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF',1) |
+-----------------------------------------------------+
|                             3.4750462962832636E-308 |
+-----------------------------------------------------+
1 row in set

obclient> SELECT UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF', 2) FROM DUAL;
+-----------------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF',2) |
+-----------------------------------------------------+
|                                                 Nan |
+-----------------------------------------------------+
1 row in set

obclient> SELECT UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF', 3) FROM DUAL;
+-----------------------------------------------------+
| UTL_RAW.CAST_TO_BINARY_DOUBLE('0018FCFF18FCFFFF',3) |
+-----------------------------------------------------+
|                                                 Nan |
+-----------------------------------------------------+
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) 咨询热线
