【发布时间】:2018-02-13 08:01:37
【问题描述】:
UPDATE STOCKVALUE A
SET A.LOCATION=(SELECT B.LOCID FROM DCCUMINVBASIC B WHERE A.MAPNAME='invdc4')
错误:ORA-01427:单行子查询返回多行
【问题讨论】:
-
错误信息很明确:有些情况下子查询返回了多条记录。因此,Oracle 无法确定 哪个
LOCID值用于更新STOCKVALUE表中的给定记录。 -
您正在设置必须为 1 的 LOCATION。检查您的子查询,它返回多于 1 行 .. SELECT B.LOCID FROM DCCUMINVBASIC B WHERE A.MAPNAME='invdc4'
-
我也给出了 Stockvalue 位置 ID(A.MAPNAME='invdc4' 和 a.location=10155000000024)
-
更新 STOCKVALUE A SET A.LOCATION=(SELECT DISTINCT B.LOCID FROM STOCKVALUE A,DCCUMINVBASIC B WHERE A.DOCID=B.DOCID AND A.MAPNAME='invdc4'AND A.MPLANT 为 NULL )
标签: sql oracle oracle11g sql-update