oracle Jdbc update语句返回零

时间:2012-03-28 13:44:06

标签: java sql oracle jdbc

这是关于使用JDBC的sql update语句。实际上我正在研究我们遇到的一些问题,在尝试更新某一行时,更新语句返回零点的所有问题都会挂起。

现在要说清楚,特定的行更新声明正在尝试更新表格中存在的内容。因此没有找到记录的可能性,因此无法更新。

提到这一点后,我的问题是,您是否看到或是他们的任何其他可能性,更新可以返回零。我正在使用oracle jdbc驱动程序。所以oracle jdbc提到任何可能由update语句返回零而不是找不到记录的情况。

非常感谢, Ameer Mawia

2 个答案:

答案 0 :(得分:0)

的executeUpdate

int executeUpdate()                   抛出SQLException

在此PreparedStatement对象中执行SQL语句,该对象必须是SQL数据操作语言(DML)语句,例如INSERT,UPDATE或DELETE;或者什么都不返回的SQL语句,例如DDL语句。

返回:         (1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句     抛出:    SQLException - 如果发生数据库访问错误;在关闭的PreparedStatement上调用此方法,或者SQL语句返回ResultSet对象

只是说文档指定:

“请注意,当executeUpdate的返回值为0时,它可能意味着以下两种情况之一:

执行的语句是一个影响零行的更新语句。    执行的声明是DDL声明。“

答案 1 :(得分:0)

抱歉,我还不知道如何发表评论,所以......

来自Oracle:

http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

请注意,当executeUpdate的返回值为0时,它可能意味着以下两种情况之一:

* The statement executed was an update statement that affected zero rows.
* The statement executed was a DDL statement.

因此看起来Update语句可能会以某种你没想到的方式受到破坏。考虑到没有抛出异常,我认为就是这种情况。如果这是可重复的,您应该能够监视在服务器端发送的SQL并查看遗漏的内容。