CAST_FROM_BINARY_DOUBLE 関数は、BINARY_DOUBLE 値を RAW のバイナリ形式で返します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
UTL_RAW.CAST_FROM_BINARY_DOUBLE(
n IN BINARY_DOUBLE,
endianess IN PLS_INTEGER DEFAULT 1)
RETURN RAW;
パラメータ説明
パラメータ |
説明 |
|---|---|
| n | BINARY_DOUBLE 値。 |
| endianess | バイト順序を表す BINARY_INTEGER 値です。この関数が認識する定義定数は以下のとおりです:
big_endian です。machine_endian の設定は、大端機上の big_endian の効果と同じ、または小端機上の little_endian の効果と同じになります。 |
戻り値
BINARY_DOUBLE 値のバイナリ表現(RAW)を返します。
使用方法
以下の表は、8バイトの
BINARY_DOUBLE値とIEEE 754倍精度形式のマッピング関係です: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のバイトを指します。endianessrb0rb1rb2rb3rb4rb5rb6rb7big_endian db0 db1 db2 db3 db4 db5 db6 db7 little_endian db7 db6 db5 db4 db3 db2 db1 db0 machine-endianの場合、BINARY_DOUBLEパラメータの8バイトがRAWの戻り値に直接コピーされます。ユーザーが大端機でbig_endianを渡した場合と、小端機でlittle_endianを渡した場合、効果は同じになります。
例
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234, 1) FROM DUAL;
+-------------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234,1) |
+-------------------------------------------+
| 402477CED916872B |
+-------------------------------------------+
1 row in set
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234, 2) FROM DUAL;
+-------------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234,2) |
+-------------------------------------------+
| 2B8716D9CE772440 |
+-------------------------------------------+
1 row in set
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234, 3) FROM DUAL;
+-------------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_DOUBLE(10.234,3) |
+-------------------------------------------+
| 2B8716D9CE772440 |
+-------------------------------------------+
1 row in set
obclient> SELECT UTL_RAW.CAST_FROM_BINARY_DOUBLE(-10.234, 3) FROM DUAL;
+--------------------------------------------+
| UTL_RAW.CAST_FROM_BINARY_DOUBLE(-10.234,3) |
+--------------------------------------------+
| 2B8716D9CE7724C0 |
+--------------------------------------------+
1 row in set