一、环境说明
oracle环境中,想对A表进行更新,对A表更新的字段来源于B表,涉及到多表更新,更新时提示“ora-01407:cannot update(XX.item_class) to NULL”,发现语句写得有问题,就整理一下单表与多表的更新。
二、单表更新
单表列新的SQL比较简单,刚开始学及工作中经常用到。
1.1 更新单表、单字段
基本格式:
update TableName set column1=value1 where condition=value1;
1.2 更新单表、多字段
基本格式:
update TableName set column1=value1,column2=value2,column3=value3 where condition=value1;
三、多表更新
常用的oracle格式如下:
update table1 a set (a.字段1,....,a.字段N) =(select b.字段1,...,b.字段N from table2 b where 两个表的关联字段)
where exists (select 1 from table2 b where 两个表的关联字段)。
注意:oracle语句里的exists不能省略,否则会导致没有对应关系的数据修改错误,甚至会报错。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8043290/viewspace-1591426/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8043290/viewspace-1591426/