【问题标题】:SQL Update hangs Java programSQL Update 挂起 Java 程序
【发布时间】:2010-02-16 20:56:26
【问题描述】:

我正在编写一个将 XML 文件解析为 Oracle SQL 数据库的 Java/Perl 组合程序。数据库中有两个表 - 一个保存 XML 文件中的数据,另一个保存有关文件本身的信息(文件名、创建时间等)。基本上,当一个新的 XML 文件出现时,Java 程序会检查它是否已经被解析或部分解析。如果有,它将使用UPDATE FILESTATUS SET STATUS='bad' WHERE ID=? 将文件状态表中的STATUS 列从该文件ID 的“好”更改为“坏”。但是,当我运行它时,它会被卡住。任何想法为什么会发生这种情况?没有错误消息发生,它只是挂起。代码如下。

static void markDataBad(String docID)
    {
        try
        {
            String update = "UPDATE FILESTATUS SET STATUS='bad' WHERE ID=?";
            PreparedStatement updateStatus = Main.con.prepareStatement(update);
            updateStatus.setString(1, docID);
            updateStatus.execute();
        }
        catch (Exception ex) {ex.printStackTrace();}
    }

我已经尝试将updateStatus.execute() 更改为updateStatus.executeQuery()updateStatus.executeUpdate(),但似乎没有任何改变。

提前致谢!

【问题讨论】:

    标签: java sql oracle sql-update


    【解决方案1】:

    您是否在其他地方对该表进行了未提交的更改?我今天遇到了这个问题,因为我在 SQL*Developer 中对表进行了一些更改,并且在我提交之前一直锁定表。

    【讨论】:

    • 原来我做到了。在数据库上提交,现在它更新没有问题(好吧,除了代码中进一步出现的问题)。谢谢!
    • 谢谢!同时在 SQL-developer 中进行试验,通过关闭它来解决它:)
    【解决方案2】:

    您的用户是否有权访问该表?
    您是否在表锁定或丢失提交之前发出?
    你可以在 shell 中运行查询吗?

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多