首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YashanDB HEXTORAW函数

YashanDB HEXTORAW函数

原创
作者头像
用户10349277
发布2025-06-04 11:46:10
发布2025-06-04 11:46:10
1430
举报
文章被收录于专栏:YashanDB知识库YashanDB知识库
代码语言:javascript
复制
hextoraw::= HEXTORAW "(" expr ")"

Copied!

HEXTORAW函数将expr表述的十六进制字符串转为二进制数据,返回一个RAW类型的结果。

函数将expr中的每两个十六进制字符子串转成一个字节,如字符串'ab'转成'0xab';如果expr的字符数量为奇数,函数将先补充4个都是0的连续位,如字符串'abc'转成'0x0abc'。

本函数不支持向量化计算。

expr的值须为字符型,或可转换为字符型的其他类型,但不允许为除BLOB外的其它LOB类型数据。当expr的值为NULL时,函数返回NULL。

expr中包含不属于十六进制表述范围(0-9、a-f、A-F)的字符时,函数报错。

当本函数用于插入或更新一个RAW列字段时,如果expr的字节长度超过RAW列宽度的2倍,函数报错。

示例(HEAP表)

代码语言:javascript
复制
SELECT HEXTORAW('1234abcd') res FROM DUAL;
RES
-------------------- 
1234ABCD

SELECT HEXTORAW('') res FROM DUAL;
RES
-------------- 
              
--包含不属于十六进制表述范围(0-9、a-f、A-F)的字符时报错
SELECT HEXTORAW('1234abcddfdfh') res FROM DUAL;
YAS-00223 invalid hex number

--奇数位在前面补0
SELECT HEXTORAW('1abcdef') res FROM DUAL;
RES
--------
01ABCDEF

--超过RAW列宽度的2倍时报错
CREATE TABLE tb_raw(c1 RAW(4));
INSERT INTO tb_raw VALUES('abcdabcd');
INSERT INTO tb_raw VALUES('abcdabcda');
YAS-04008 C1 size exceeding limit 4

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档