hibernate通过hql语句查询oracle的clob数据的时候,将clob转换成string时报错
2020-02-07 01:46
573 查看
java.io.IOException: ORA-06550: 第 1 行, 第 7 列: PLS-00201: 必须声明标识符 'DBMS_LOB' ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored
PLS-00201: 必须声明标识符 ‘DBMS_LOB’
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored)
hibernate通过hql查询oracle的clob数据的时候,通过流将clob转换成string时报错
代码如下:
public static String clobToString(Clob clob) { StringBuffer buffer = new StringBuffer(); if (clob != null) { try (Reader r = clob.getCharacterStream(); BufferedReader br = new BufferedReader(r)) { String s = null; while ((s = br.readLine()) != null) { buffer.append(s); } } catch (Exception e) { LOG.WRITE_SERVER("clob转换String异常:",e); } } return buffer.toString(); }
报错:
java.io.IOException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 ‘DBMS_LOB’
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
原因
百度了一下,基本上回答都是说没有’DBMS_LOB’权限的原因,但是公司数据库权限不能随便给你,所以不能通过给权限的方法尝试解决,而且系统框架是很老的ssh,试了几个方法没有解决
解决
之前是通过hibernate的映射使用hql查询的,但是走不通,我就试着通过sql查询clob,sql语句为
select dbms_lob.substr(clob字段名) from 表名
select to_char(clob字段名) from 表名
很明显,第一条sql语句dbms_lob.substr()要权限,而我是没有权限的,这时候只能使用第二条sql语句,不过这个sql语句有缺点,只能在clob的长度小于4000的时候使用
使用hibernate通过sql语句进行查询,返回的是一个string对象,这个时候就可以读取到了.
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- 通过hibernate操作oracle的clob类型数据.doc
- hibernate通过判断参数动态组合Hql语句,生成基本通用查询
- hibernate和mybatis中String和CLOB,oracle之间的转换
- struts+hibernate+mysql HQL语句查询带中文的查询不出数据的解决方法
- 执行了getHibernateTemplate.save(user)后,控制台有hql语句输出,显示已经将数据存到数据库了,也没有抛出异常,但是去oracle数据库查的时候,压根就没有数据。。。。请问
- Oracle中Clob类型的字段数据转换成String字符串
- Hibernate原生SQL(createSQLQuery,通过Transformers.ALIAS_TO_ENTITY_MAP设置生成MAP)查询,自动读取ORACLE CLOB内容的解决方案
- AJAX通过JSON显示数据,hql语句查询要对应到类
- Hibernate的hql语句查询不到内容,但是库里有数据,直接执行SQL也能执行,能得到值,返回值取不到
- Hibernate中通过HQL/JPQL查询的方式实现动态数据获取
- Hibernate如何使用HQL语句实现数据分页查询
- Hibernate(3)-使用HQL语句进行数据查询
- Hibernate原生SQL查询数据转换为HQL查询数据方法
- 在myeclipse6.5 中运行main函数测试webservice服务端利用hql语句查询数据库里的数据的时候的问题
- hibernate的hql查询语句总结
- hibernate+oracle+servlet实现插入数据的时候,不立马显示!!
- 怎么使用robomongo查询mongodb(就像用plsql,输入sql语句,查询oracle数据一样)?
- hibernate--HQL查询语句(2)
- 通过sql语句查询表的列和对应的数据并在jsp页面上显示