java - 如何选择具有 CLOB 数据类型的列

标签 java sql clob

我的 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,因此它可以在我的页面中使用。

最佳答案

问题来自于查询的 distint 子句,它不能应用于 CLOB。

检查是否确实需要 unique 关键字。或者也许您可以将查询重写为

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

PS:下次,请在问题中包含错误消息和您的数据库。我通过简单的 google 搜索“ora-00932 clob”就找到了问题。

关于java - 如何选择具有 CLOB 数据类型的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585904/

相关文章:

java - Gson JSON 最大大小

c# - 如何使用即席 sql 查询 : SQL Filtering 进行延迟加载

php - 如何在SQL查询中使用bindValue和LIKE运算符?

java - 尝试将文件路径包含到索引页时出现问题

java - 基于应用参数 JUnit 验证行为

mysql - 为什么这个 "nested join"适用于 PDO 但不适用于 MySql cli?

PHP 和 OCI-Lob::read from oracle clob

java - 未释放 CLOB 的临时表空间

java - 在 Eclipse 控制台中显示 Grizzly 异常

java - 将eclipse和android SDK转移到新电脑