问题描述:
在对字段类型为CLOB的数据进行对比的时候,会报数据类型不一致错误。
处理方法:
可以使用DBMS_LOB.SUBSTR() 将CLOB字段转换成VARCHAR2类型。
语法如下:DBMS_LOB.SUBSTR(字段名,截取的长度,起始位置)
*
如:SELECT dbms.lob.substr(a,100,a) FROM b;
意思为:将 b表中的a字段从第一个位置截取,截取长度为100。
注:varchar2是有长度限制的 为4000(存储过程里Oracle 10g最大为4000, Oracle 12 可达32767)。
如果字段内容过长可以使用拼接或者分段截取:
SELECT dbms.lob.substr(a,100,a) ||dbms.lob.substr(a,100,101) FROM b;
SELECT dbms.lob.substr(a,100,a) as str1,dbms.lob.substr(a,100,101) as str2 FROM b;