【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】5.7.25-OceanBase_CE-v4.3.5.1
【问题描述】使用DECODE和DECODE函数结果显示BLOB,并没有显示加密和解密的内容
【复现路径】select ENCODE(‘123333’, ‘abc5’) from dual
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
select ENCODE(‘123333’, ‘abc5’) from dual

SELECT DECODE(ENCODE(‘123333’, ‘abc5’),‘abc5’)
2 个赞
论坛小助手
#5
您遇到的问题可能是因为 ENCODE 和 DECODE 函数返回的是 BLOB 类型的数据,而不是文本类型的数据。这意味着它们是以二进制形式存储的,因此您在查询结果中看到的是 BLOB。如果您希望看到实际的解密内容,可以尝试将结果转换为字符类型。例如,您可以使用 CONVERT 或 CAST 函数将 BLOB 转换为字符串类型。
例如:
SELECT CAST(DECODE(ENCODE('123333', 'abc5'), 'abc5') AS CHAR) AS decoded_string;
这将会把解密后的 BLOB 数据转换为字符串类型,从而可以看到实际的解密内容。
更多信息请查看:
- DES_DECRYPT
1 个赞