为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:1-2-138-2022.09.09-169171-20009-ENT
【操作系统】:麒麟V10
【CPU】:X86
【问题描述】*:执行select语句报错字符串截断,修改CLOB_LIKE_MAX_LEN 参数无效。
sql语句去掉任何一个or条件或者下面的and条件都可以执行成功。
sql语句如下:
SELECT
ID ,
ARTICLE_ID ,
SITE_ID ,
CONTENT ,
EXT_CLOB_D ,
EXT_CLOB_C ,
EXT_CLOB_B ,
EXT_CLOB_A ,
EXT_SIMHASH1,
EXT_SIMHASH2,
EXT_SIMHASH3,
EXT_SIMHASH4
FROM
EPS_ENTITY_EXT
WHERE
(
(
EXT_SIMHASH1 IS NULL
or EXT_SIMHASH1=‘’
)
OR
(
EXT_SIMHASH2 IS NULL
or EXT_SIMHASH2=‘’
)
OR
(
EXT_SIMHASH3 IS NULL
or EXT_SIMHASH3=‘’
)
OR
(
EXT_SIMHASH4 IS NULL
or EXT_SIMHASH4=‘’
)
)
AND
( CONTENT is not null
and CONTENT != ''
)
从文本看来CONTENT字段应当为CLOB
CONTENT != ''的写法实际上是将其转化为char相关类型后进行比较,而这一隐式转化过程相对而言存在一定不可控性,对于明确为CLOB类型的字段实际上可以通过结构中的长度信息来判断,例如通过如下方式
在管理工具执行的,还是disql呢?报错截图发下呗