Reputation: 333
SELECT DESCRIPTION,DETAILED_DESCRIPTION,PRIORITY,RISK_LEVE FROM Table_Name
The DETAILED_DESCRIPTION
column is having value in CLOB
Below is the code is used to fetch the data: But i am getting the error "Error: Read error" while reading the field "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<String> record=new ArrayList<String>();
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;
Upvotes: 9
Views: 71488
Reputation: 44814
After retrieving your data, you can use the getClob () method to return your Clob. Then you needs to open the Clob's stream to read the data (Mayb be char or binary data).
If the clob is known to be a plain string, you maybe also wish to use
clob.getSubString(1, (int) clob.length());
So try this
Clob clob = resultSet.getClob("DETAILED_DESCRIPTION")
record.add(clob.getSubString(1, (int) clob.length());
see http://www.java2s.com/Code/JavaAPI/java.sql/ResultSetgetClobintcolumnIndex.htm
Upvotes: 23
Reputation: 8337
This might help you,
// 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);
}
Refer to below link for more details, http://docs.oracle.com/cd/A84870_01/doc/java.816/a81354/oralob2.htm
Upvotes: 0