2
读取CLOB列我有一个表在数据库,其中一列(STATUS)的数据类型是CLOB.I需要读取状态如何在Oracle数据库从Java
create table STATUS_TABLE
(
STATE_ID number(20,0),
STATUS clob
)
我想读CLOB列如下
String getStatus = "SELECT STATUS FROM STATUS_TABLE WHERE STATE_ID="+id;
Query statusResults = session.createSQLQuery(getStatus);
List statusRes = statusResults.list();
if ((statusRes != null) && (statusRes.size() > 0)) {
oracle.sql.CLOB clobValue = (oracle.sql.CLOB) statusRes.get(0);
status = clobValue.getSubString(1, (int) clobValue.length());
log.info("Status->:" + status.toString());
}
而得到错误的
java.lang.ClassCastException: $Proxy194 cannot be cast to oracle.sql.CLOB
我怎样才能读取DB CLOB数据并将其转换字符串?
你试图存储什么数据?你为什么使用CLOB? – Ravi
我会认为使用PreparedStatement - > resultSet然后使用https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getClob(int)会更好 –
也是你的表说'STATUS',但你的SQL说'SELECT STATUS_DESCRIPTION' –