Oracle无法更新XX为null及单个子查询返回多个行

错误:无法更新 表名.字段名  为null

原因:查询结果为null

如下代码执行时,会提示以上问题。

 1 Update goodsmove gm
 2 Set customfield=
 3 (Select Sum(gmi.actinpquantity)
 4 From goodsmoveitem gmi
 5 Where gmi.goodsmoveid=gm.goodsmoveid
 7 Group By gmi.goodsmovid
 8 )

执行其中的select语句可以发现,查询结果中有多个结果

 1 Update goodsmove gm
 2 Set customfield=
 3 (Select Sum(gmi.actinpquantity)
 4 From goodsmoveitem gmi
 5 Left Join goodsmovement gm On gm.goodsmoveid=gmi.goodsmoveid
 7 Group By gmi.goodsmoveid
 8 )
 9 Where exists(
10 Select 1 From goodsmoveitem gmi
11 Where gmi.goodsmoveid=gm.goodsmoveid)

 

 以上问题解决方式:

 1 Update goodsmove gm
 2 Set customfield36=
 3 (Select Sum(gmi.actinpquantity)
 4 From goodsmoveitem gmi
 5 Where gmi.goodsmoveid=gm.goodsmoveid
 6 Group By gmi.goodsmoveid
 7 )
 8 Where exists(
 9 Select 1 From goodsmoveitem gmi
10 Where gmi.goodsmovementid=gm.goodsmoveid)

 

posted @ 2020-08-14 08:48  人生只若初相见  阅读(607)  评论(0编辑  收藏  举报