【问题标题】:Query "Merge" freezes on executing. Oracle via jdbc查询“合并”在执行时冻结。甲骨文通过 jdbc
【发布时间】:2020-07-13 15:51:53
【问题描述】:

我对合并有疑问。当它在 SqlDeveloper 中运行时,它可以正确执行。但是当我尝试使用 jdbc 在 java 中执行时,它会冻结。

    @Override
    public void updateRegion(int id, int region) {
        try {
            PreparedStatement statement = connection.prepareStatement(
                    "MERGE INTO LINKING_DOCTORS_TO_REGION l "
                    + "USING LINKING_DOCTORS_TO_REGION l1 "
                    + "ON (l1.user_ = ?) "
                    + "WHEN MATCHED THEN UPDATE SET region = ? "
                    + "WHEN NOT MATCHED THEN INSERT (region, user_) VALUES (?, ?)");
            statement.setInt(1, id);
            statement.setInt(4, id);
            statement.setInt(2, region);
            statement.setInt(3, region);
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

怎么了?谢谢

【问题讨论】:

  • 你能把它做成一个存储过程吗?然后如果可能的话,你可以尝试通过“{call mergeSp(?, ?, ?, ?)}”来调用它

标签: java oracle jdbc merge


【解决方案1】:

我在 sqldeveloper 中做了一些更改,但我忘记提交了。

【讨论】:

  • 天啊,这也是我的问题 :( 我不敢相信我在这上面疯了 30 分钟。谢谢@piller97
猜你喜欢
  • 2019-01-30
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 2012-01-28
相关资源
最近更新 更多