7
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<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;   
4

2 に答える 2

22

データを取得したら、getClob () メソッドを使用して Clob を返すことができます。次に、Clob のストリームを開いてデータを読み取る必要があります (文字またはバイナリ データの可能性があります)。

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を参照してください。

于 2013-10-21T05:18:46.947 に答える
0

これはあなたを助けるかもしれません、

    // 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

于 2013-10-21T05:16:38.787 に答える