oracle 两表之间字段赋值错误解析
来源:互联网 发布:日系文艺男装淘宝店铺 编辑:程序博客网 时间:2024/05/20 04:48
在做项目时,经常需要在量表之间进行字段赋值进行初始化
例如:
update TB_PER_INTERNALDISMISSION ti set ti.C_UNITID = nvl((select ts.C_OLDUNITID from TB_PER_STAFFRECORD ts where ts.c_empoid = ti.c_empoid and ts.c_recordtype = '7' and ts.c_recordtime = (select max(staff.c_recordtime) from TB_PER_STAFFRECORD staff where staff.c_empoid = ts.c_empoid and staff.c_recordtype = '7') ),0)
我们可以看到,在上面的代码充分估计到了空值的现象(nvl),并对可能的多条记录只取记录最新的列表,但依然可能报错
这里就需要仔细查看自己的代码逻辑,一般来说是自己的代码逻辑出现了问题,如果确定没有问题,则可能是数据库里面存在重复数据
这就需要对重复数据进行查询
select count(1),ts.c_empoid,ts.c_recordtime from TB_PER_STAFFRECORD ts where ts.c_recordtype = '7' and ts.c_recordtime = (select max(staff.c_recordtime) from TB_PER_STAFFRECORD staff where staff.c_empoid = ts.c_empoid and staff.c_recordtype = '7') group by ts.c_empoid,ts.c_recordtime having count(1)>1这就是对上面代码进行重复数据的查询,从而找到了重复数据
重复数据的出现可能有很多,最常见的是在代码设计阶段的循序渐进造成的,虽然不多,但报错之后影响查询,需要注意,另外一点,可以在开发阶段专门用一个测试数据库,开发完成之后再进行回滚,则可以避免这部分的内容
0 0
- oracle 两表之间字段赋值错误解析
- Oracle 两字段连接
- oracle 两字段重复
- CString之间赋值出现错误
- oracle 找出两表之间重复数据
- Oracle两表之间数据更新
- Oracle两张数据表之间某个指定字段的单向和双向同步
- oracle 如何将一个表的某个字段赋值给另一张表的某个字段
- SQL两表之间:根据一个表的字段更新另一个表的字段
- SQL两表之间:根据一个表的字段更新另一个表的字段
- SQL两表之间:根据一个表的字段更新另一个表的字段
- SQL两表之间:根据一个表的字段更新另一个表的字段
- oracle批量新增字段 数据赋值应用
- oracle 查询两个字段赋值到一个字段的方法
- oracle 找出两表之间非重复数据
- ORACLE 和SQLSERVER 两表之间批量更新数据对比
- 一道赋值题目的错误解析
- Oracle触发器给表自身的字段重新赋值出现ORA-04091异常
- cuda编程实践-2
- onNewIntent何时会被执行 以及 Android任务和返回栈解析
- 使用API将AR收款不明入金转为未核销状态
- PHP 多维数组
- Matlab数值计算
- oracle 两表之间字段赋值错误解析
- table表格简单样式设置
- jqGrid学习总结_1 获取或设置行及单元格的值
- caffe 训练测试自己的数据集
- Check Memory Leak
- easyui datagrid的二次加载问题 来自于网络方便自己以后查找
- mysql 用户管理和权限设置
- 自定义progressdialog——带倒计时的progressbar效果
- 人脸姿态识别