update sjddb set skdd='临时' where skdd='一般'结果skdd一列均变为空值,请大家帮忙

解决方案 »

  1.   

    确保update之前表里有数据,对应于skdd='一般'的行
    确保update之后commit了。
      

  2.   

    update sjddb set skdd='临时' where skdd='一般'语句没有问题,是不是数据库没有及时刷新?你最好commit一下试试!!
      

  3.   

    oracle里面下完update命令,需要做提交的。你commit一下看看
      

  4.   

    语句应该没问题,跟commit也应该没关系。就算没有commit也只是值为“一般” 
    不可能为空的
      

  5.   

    你先select一下,看看查询出来的条件是不是符合你的要求,可能你的条件本身就写错了。
      

  6.   

    commit一下,不行就退出了重新进,怎么可能出这种问题
      

  7.   

    先select看看你要update的记录是否符合要求,然后可以在客户端工具上手动改一条确认一下。
      

  8.   

    请先确认 select count(*) from sjddb where skdd='一般'
    有数据。
    不是commit的问题,你不提交,那么 skdd 也为'一般',不可能为null
      

  9.   

    你的'临时' 值不是一个常量,是关联另外的数据表获取的吧
    主要还是你SQL文设置问题
      

  10.   

    select * from sjddb where skdd='一般'
    试试看
    估计没有结果
    就是不存在 skdd='一般' 的结果,当然就update不上啦
    如果原来就是空值,update不上的话,后来还是空值。
      

  11.   

    在update的时候 最好能在where 里加个exists的查询语句 
      这样能保证只有需要更新的那条数据存在时才更新 否则很有可能把某个字段全部更新了 dangerous
      

  12.   

    是不是有什么触发器啊!或者这个表是不是跟数据库登录用户有关的,譬如这个用户登录后这能看到的是 skdd='一般' 的数据,更新之后该用户就看不到了! 
      

  13.   

    首先oracle不可能出现这种bug,其次奇怪的现象必然是非套路的原因,
    重复一做遍,仔细检查一下