0

JSP ページに、CLOB 型のデータベース カラムが取り込まれるカラムを持つテーブルがあります。これを行う際に問題が発生しており、これについて他の質問が寄せられているのを見てきましたが、答えがうまくいきませんでした。コメントが CLOB である私のステートメントを次に示します。

   stmt = conn.prepareStatement("SELECT DISTINCT restriction, person, start_date, end_date, comments "
                           + "  FROM restrictions WHERE person = ? "
                           + "   AND (start_date BETWEEN TO_DATE (? , 'yyyy/mm/dd') AND TO_DATE (? , 'yyyy/mm/dd') "
                           + "    OR start_date < TO_DATE (? , 'yyyy/mm/dd') AND end_date IS NULL) " );

        stmt.setString(1, Id);
        stmt.setString(2, StartRest);
        stmt.setString(3, EndRest);
        stmt.setString(4, EndRest);
        result = stmt.executeQuery();     

次に、列を while ループに入れます。

   while (result.next()) {     
        restrictions = StringUtils.defaultString(result.getString("str_restriction"));
        .......
        // here is where I would get my Clob data from the query.

したがって、基本的には、クエリで、または Java コードでさえ CLOB を変換する方法があるかどうか疑問に思っていたので、私のページで使用できます。

4

1 に答える 1

2

この問題は、CLOBに適用できないクエリのdistint句に起因します。

個別のキーワードが本当に必要かどうかを確認してください。または、クエリを次のように書き直すこともできます

select restriction, person, start_date, end_date, comments from restrictions 
where id in (select distinct id from restrictions where <original where clause>)

PS:次回は、質問にエラーメッセージとデータベースを含めてください。「ora-00932clob」での簡単なグーグル検索で問題を見つけることができました。

于 2011-07-05T17:07:26.117 に答える