在plsql中执行update tb_cons_pqamt  t  set  t.cons_name='1' 执行后没有反应 执行update tb_cons_pqamt  t  set  t.cons_name='1'  where 1=1 就成功更新,困惑住我了,有谁知道是怎么回事吗。以前没有遇到过啊。plsqloracle

解决方案 »

  1.   


    你看一下更新返回的结果集对不对,你首先select * from tb_cons_pqamt where cons_name='1' 看能否查询到记录,如果能查询到肯定就能更新了
      

  2.   


    where 1=1 本来就是一个成立的条件,你要看执行后对表的数据有没有影响?如果有影响那你查询的时候把where 1=1看能不能查出来/
      

  3.   

    跟表和数据应该没关系,是不是这个oracle有设置,因为其他的表也是一样的。
      

  4.   


    oracle本身肯定不会有这样的设置的,标准的语法都不支持这怎么可能。或者是你的表有问题,是否加了触发器之类的,或者是你的环境有问题吧
      

  5.   

    确实看不懂楼主所提问题的症结所在。where 1=1这个玩意一般是为了方便拼接后续查询条件时加的,本身对查询不产生任何影响。
      

  6.   

    一般来说 执行update没where 会提示你 是否更新全部数据  然后选择执行没任何反应  lz最好截图上来看下
      

  7.   

    楼主执行成功的where 1=1 是否有数据 
      

  8.   


    理论不会出现这种情况的,针对你上面的两条语句,理论结果是一样的,楼主不妨 换台机器试试,或者用sqlplus 执行下。
      

  9.   

    plsql执行全面update在默认情况下是会弹框确认的,是不是楼主选过否了还勾上了以后不显示的勾啊