oracle11g java导出excel报错oracle.sql.CLOB@xxxx问题
来源:互联网 发布:宜居星球知乎 编辑:程序博客网 时间:2024/05/19 01:10
在项目中遇到,生产导出excel报错的问题 oracle.sql.CLOB@xxxx的错误,测试导出没问题,一样的代码。
原来oracle数据库从10g以后,使用wm_concat,函数返回值会自动转成clob类型 oracle.sql.CLOB@xxxxx.
如下图:
解决方法:
1.从数据库改为如下拼接方式,listagg(),返回字符串,但是需要oracle11g上才支持,并且不支持distinct, 拼接长度不能大于4000,函数返回varchar2,最大长度4000
select listagg(headname, ',') within group(order by rownum) as headName,
listagg(headCode, ',') within group(order by rownum) as headCode
from (select t.col_name as headName, t.col_code as headCode
from el_tree t
where tree_code = 'ztesoft_pubnet_planobj_lgf_qry'
and is_display = 'true'
order by display_index asc) w
2.修改代码,读取clob需要用流的方法读取,如下:
Clob clob=(CLOB)a.get("NAME");
Reader is=clob.getCharacterStream();
char [] c= new char[(int)clob.length()];
is.read(c);
data=new String(c);
is.close;
总结:由于使用wm_concat函数,在oracle10g之后,返回值变成clob类型,因此,接收值的时候,用clob接收,用流进行读写,这样接收到的值就OK了
我的项目里是把wm_concat改成listagg来拼接sql.数据就正常了。代码方面流读写方式,我没有在该项目中进行验证。
- oracle11g java导出excel报错oracle.sql.CLOB@xxxx问题
- 导出Excel报错问题
- Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine
- Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine
- oracle ORA-01704问题(clob字段insert报错)
- PL/SQL 导出dmp文件 含有clob 报错处理
- java 导出excel问题
- oracle.sql.CLOB不能转换成oracle.sql.CLOB类型的异常 java.lang.ClassCastException: oracle.sql.CLOB
- oracle导出含有Clob大数据字段类型的问题
- EXCEL导出报错的问题 excel2010 english version
- jxl按照模板导出数据到excel报错问题
- C# 导出EXCEL报错
- 导出EXCEL报错:NullPointerException
- java.lang.ClasCastException: oracle.sql.CLOB incompatible with oracle.sql.CLOB
- java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB
- java jxl excel导出报错 Warning: Cannot merge cells
- oracle.sql.CLOB
- windows7 下安装64位oracle11g用PL/SQL Developer连接报错问题
- nlogn求最长上升子序列长度(二分 找序列)
- 浅看数据结构和算法的关系
- 写作笔记二
- Spring4.0后自定义属性编辑器配置的变化
- d3学习笔记
- oracle11g java导出excel报错oracle.sql.CLOB@xxxx问题
- python习题——迭代器
- AI,机器学习(模式识别),深度学习的区别与联系
- KafKa
- 配置class PATH
- rsync.sh第二版
- Android app反编译工具
- Spark2.x学习笔记:7、Spark应用程序设计
- asp.net如何为配置文件加密