如何使用java从Oracle中恢复CLOB值
SELECT DESCRIPTION,DETAILED_DESCRIPTION,PRIORITY,RISK_LEVE FROM Table_Name
DETAILED_DESCRIPTION
列在CLOB
具有值
下面是代码用于获取数据:但是我在读取“DETAILED_DESCRIPTION”字段时收到错误“错误:读取错误”
Statement statement; ResultSet resultSet; oracleCon.setAutoCommit(false); statement = oracleCon.createStatement(); String chdet[] = new String[8]; String query="SELECT DESCRIPTION,DETAILED_DESCRIPTION,PRIORITY,RISK_LEVEL FROM Table_Name"; resultSet = statement.executeQuery(query); ArrayList record=new ArrayList(); while (resultSet.next()) { record.add(resultSet.getString("DESCRIPTION")); record.add(resultSet.getString("DETAILED_DESCRIPTION")); record.add(resultSet.getString("PRIORITY")); record.add(resultSet.getString("RISK_LEVEL")); } if(record.size()>0) { chdet[0] = record.get(0); chdet[1] = record.get(1); chdet[2] = record.get(2); chdet[3] = record.get(3); break; } } return chdet;
检索数据后,可以使用getClob()方法返回Clob。 然后你需要打开Clob的流来读取数据(Mayb是char或二进制数据)。
如果知道clob是一个普通的字符串,你也许也希望使用
clob.getSubString(1, (int) clob.length());
所以试试吧
Clob clob = resultSet.getClob("DETAILED_DESCRIPTION") record.add(clob.getSubString(1, (int) clob.length());
请参阅http://www.java2s.com/Code/JavaAPI/java.sql/ResultSetgetClobintcolumnIndex.htm
这可能对你有帮助,
// Select LOB locator into standard result set. ResultSet rs = stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table"); while (rs.next()) { // Get LOB locators into Java wrapper classes. java.sql.Blob blob = rs.getBlob(1); java.sql.Clob clob = rs.getClob(2); }
有关详细信息,请参阅以下链接, http://docs.oracle.com/cd/A84870_01/doc/java.816/a81354/oralob2.htm