SQL Update挂起Java程序

时间:2010-02-16 20:56:26

标签: java sql oracle sql-update

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

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(),但似乎没有任何变化。

提前致谢!

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

您的用户是否拥有该表的权限?
您是否在锁定桌面或丢失提交之前发出了什么? 你能在shell中运行查询吗?