试图在blob或者clob列上排序或比较问题排查

问题描述

系统在执行存储过程中出现:error试图在blob或者clob列上排序或比较的问题,如下图,首先通过技术平台的fqa,通过sp_set_para_value(1,'ENABLE_BLOB_CMP_FLAG',1)更改相关参数,并重启数据库,再次尝试执行存储过程,问题没有解决。生产环境报错,测试环境不报错。

生产环境信息

Select id_code() from dual;

 Select build_version from v$instance;

问题分析

  1. 排查问题系统里是否有相关问题,排查到问题编号114975和遇到的问题是一直的,评审结论是:在2月月度版上确认存在,正常情况下,enable_blob_cmp_flag=1可以解决。
  2. 排查兼容模式设置:COMPATIBLE_MODE 配置是2,兼容oracle。另外一个测试环境版本1-2-128-22.08.12-166927-20005-ENT, COMPATIBLE_MODE配置是2,enable_blob_cmp_flag=1,但是查询没有报错,暂排除COMPATIBLE_MODE问题。
  3. 导出两个环境的dm.ini文件,做参数比对,看看差异在哪里?发现enable_blob_cmp_flag生产环境和测试环境参数的描述不一致。
  4. 生产环境:ENABLE_BLOB_CMP_FLAG            = 1              #Whether BLOB/TEXT types are allowed to be compared;1:not allowed;2.allowed and text turn to char/varchar;3.allowed and char/varchar turn to text.
    测试环境:ENABLE_BLOB_CMP_FLAG            = 0                     #Whether BLOB/TEXT types are allowed to be compared
    最新的手册中描述:是否支持大字段类型的比较。 0:不支持; 1:支持,此时 DISTINCT、 ORDER BY、 分析函数和集函数支持对大字段进行处理, 且当大字段跟字符串比较时,让大字段转换成字符串类型; 2:支持,此时 DISTINCT、 ORDERBY、 分析函数和集函数支持对大字段进行处理, 且兼容 MYSQL 模式下,大字段跟字符串比较时,让字符串转换成大字段类型。
  5. 尝试根据dm.ini说明去设置参数值,将enable_blob_cmp_flag=2,排序查询不报错。
  6. 尝试在其他版本测试,参数文件描述是:Whether BLOB/TEXT types are allowed to be compared;0:not allowed;1.allowed and text turn to char/varchar;2.allowed and char/varchar turn to text. 按照描述设置enable_blob_cmp_flag=1,排序查询不报错。
  7. 在相同版本复现问题:参数描述是:Whether BLOB/TEXT types are allowed to be compared;1:not allowed;2.allowed and text turn to char/varchar;3.allowed and char/varchar turn to text.
    但是参数值设置为3时,是无效的参数值,参数设置为1和2时,排序查询没有问题。

问题结论

自行测试结果是enable_blob_cmp_flag参数的行为跟有些版本的dm.ini文件描述的不符,实际行为和手册描述相符,问题环境中出现行为和手册描述不符需要测试再次确认。

达梦技术社区:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值