【Oracle CLOB类型字段问题】ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

问题描述

Oracle 运行时报错
【Oracle CLOB类型字段问题】ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小_第1张图片

原因分析:

查询视图报错,原因是原表REMARK的字段类型是CLOB,由于该字段的值过大,导致视图查询时报错

【Oracle CLOB类型字段问题】ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小_第2张图片

解决方案:

使用dbms_lob.substr()方法截断处理,注意截断后的数据与原表数据不全。具体操作如下:

dbms_lob.substr("REMARK",4000)  AS  "REMARK"

当超过截断值超过4000时,还是会引起报错,我们可以调小取值至1000。

dbms_lob.substr("REMARK",1000) AS "REMARK" 

至此,解决了报错问题。

你可能感兴趣的:(sql,oracle,sql,数据库)