问题描述:
报表中的某个字段经过聚合(行转列)后,长度超过了Oracle SQL中对VARCHAR2的数据限制(data limit),即4000字节。
改用CLOB数据类型来存储聚合后的数据,可成功聚合数据。但新的问题随之而来,CLOB数据时不支持GROUP BY语句的。
所以,有必要将CLOB转换为VARCHAR2。
转换方法:
使用DBMS_LOB.SUBSTR(字段,截取长度)可将CLOB数据成功转换为VARCHAR2。
示例:
SELECT DBMS_LOB.SUBSTR ('abcdef', 5) FROM DUAL