无法一次更新Oracle中的多行

时间:2017-11-21 11:31:52

标签: oracle join sql-update

我正在尝试在表中执行更新查询,我试图为某些表插入外键,

查询是:

update TABLE_1 set TABLE_2_ID = (select TABLE_2_ID from TABLE_2)

获取例外:

  

由以下原因引起:“ORA-01427:单行子查询返回多行

我已经搜索了问题我知道问题是我有多个结果行来自从TABLE_2中选择TABLE_2_ID 我试图在一行中更新,但我无法识别结果

1 个答案:

答案 0 :(得分:1)

"update TABLE_1 set TABLE_2_ID = (select TABLE_2_ID from TABLE_2 where XXXXX)"中添加一行代码,以确保(select TABLE_2_ID from TABLE_2 where XXXXX)只返回一个结果

  

或者像这样

update  TABLE_1
  set (TABLE_1.a2,TABLE_1.a3) =(select TABLE_2.b2,TABLE_2.b3
  from  TABLE_2
  where TABLE_2.b1= TABLE_1.a1 and TABLE_1.a3=xxx
  )
where exists
(select 'X' from TABLE_2 where TABLE_2.b1=TABLE_1.a1 and TABLE_1.a3=xxx);
commit;