update使所有更新字段数据都变为空 update sjddb set skdd='临时' where skdd='一般'结果skdd一列均变为空值,请大家帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 确保update之前表里有数据,对应于skdd='一般'的行确保update之后commit了。 update sjddb set skdd='临时' where skdd='一般'语句没有问题,是不是数据库没有及时刷新?你最好commit一下试试!! oracle里面下完update命令,需要做提交的。你commit一下看看 语句应该没问题,跟commit也应该没关系。就算没有commit也只是值为“一般” 不可能为空的 你先select一下,看看查询出来的条件是不是符合你的要求,可能你的条件本身就写错了。 commit一下,不行就退出了重新进,怎么可能出这种问题 先select看看你要update的记录是否符合要求,然后可以在客户端工具上手动改一条确认一下。 请先确认 select count(*) from sjddb where skdd='一般'有数据。不是commit的问题,你不提交,那么 skdd 也为'一般',不可能为null 你的'临时' 值不是一个常量,是关联另外的数据表获取的吧主要还是你SQL文设置问题 select * from sjddb where skdd='一般'试试看估计没有结果就是不存在 skdd='一般' 的结果,当然就update不上啦如果原来就是空值,update不上的话,后来还是空值。 在update的时候 最好能在where 里加个exists的查询语句 这样能保证只有需要更新的那条数据存在时才更新 否则很有可能把某个字段全部更新了 dangerous 是不是有什么触发器啊!或者这个表是不是跟数据库登录用户有关的,譬如这个用户登录后这能看到的是 skdd='一般' 的数据,更新之后该用户就看不到了! 首先oracle不可能出现这种bug,其次奇怪的现象必然是非套路的原因,重复一做遍,仔细检查一下 oracle错误代码 如果定时执行存储过程的表分析 sql脚本:已知一个insert 脚本 ,想生成一个删除脚本 ORACLE的错误信息放哪了? pro*c调用存储过程为什么不成功? 请教两个问题 数据库导出错误:ORA-3127,请高手帮忙~ Is there any limitation of datafile size and tablespace size in Oracle8.0.5 Excel-->>Oracle敬请各位指教! oracle触发器问题 oracle中的job问题 System用户登陆的实例
确保update之后commit了。
不可能为空的
有数据。
不是commit的问题,你不提交,那么 skdd 也为'一般',不可能为null
主要还是你SQL文设置问题
试试看
估计没有结果
就是不存在 skdd='一般' 的结果,当然就update不上啦
如果原来就是空值,update不上的话,后来还是空值。
这样能保证只有需要更新的那条数据存在时才更新 否则很有可能把某个字段全部更新了 dangerous
重复一做遍,仔细检查一下