如果没有这条语句的话就是0 Rows updated,不会报错的,这跟语法没什么关系的,DELETE 也是同样的原理

解决方案 »

  1.   

    where条件是确定影响的行数。
    如果影响行数为0算错的话,那开发就没法做了。。也没必要。。
    而且不能执行是不合理的,oracle只有真正跑的过程才知道语句影响了哪些行。。
      

  2.   

    就是说update和delete只要语法ok,字段ok,就执行,不会半段数据是否存在?
      

  3.   

    就是说update和delete只要语法ok,字段ok,就执行,不会半段数据是否存在?
    对,没有满足条件的行的话,影响的行数就是0,否则就按照where条件影响记录。
    只要sql语法正确,执行么问题。。
      

  4.   

    就是说update和delete只要语法ok,字段ok,就执行,不会半段数据是否存在?
    Right
      

  5.   

    这个没问题。update 后返回的update个数为0 ,没有更新到数据,你当然可以commit,如果这个一个事物,前面有insert、update之类的commit就不丢失数据了。
    如果不commit 之前的就不能commit,当然这是业务规则正确的情况下。