YashanDB|BIN 函数详解:如何把数据转成二进制表示?

在某些业务场景中,开发者可能希望以二进制形式查看数值的底层表示。YashanDB 提供了 BIN(expr) 函数,用于将一个值转换为其对应的 64 位二进制字符串,并以 VARCHAR 类型返回,方便后续使用或展示。
一、函数用途
BIN(expr) 的作用是:
将输入表达式转换为二进制(BIT)格式的字符串。
转换后的结果是 VARCHAR 类型,展示的是对应数值的二进制表示。
二、支持的数据类型
数值类型(如 INT、NUMBER);
可以转换为 NUMBER 类型的字符串;
RAW 或 LOB 类型(长度受限);
不支持以下类型:
XMLTYPE、JSON 类型;
超过 32000 字节的 LOB 数据。
三、处理规则说明
① 带小数的值:
自动截断小数位,只保留整数部分参与转换。
② 负数处理:
返回其 64 位补码 表示。
③ 二进制字符串支持:
支持以 b'...' 形式传入二进制文本,如 b'010010',但需符合 BIT 类型长度限制。
④ 非合法输入处理:
若无法转换为 NUMBER,则返回类型转换错误;
若字符不为 0/1(或非 NULL/合法二进制字面量),则返回 invalid string 错误;
输入为 NULL 时,结果也是 NULL。
四、常见示例
复制代码
五、适用场景
数据调试:查看整数、标志位的底层二进制表示;
编解码:在需与位运算或硬件通信相关的业务中预处理数据;
可视化展示:将数值数据以 BIT 格式展现在报表或系统日志中。
小结建议
使用 BIN 函数前,确保输入值能正确转换为 NUMBER;
对于字符串、LOB 类型等,建议先用 TO_NUMBER 明确测试;
若涉及负数,需理解其补码形式,尤其在与其他系统对接时。
评论