我在SQL中执行了以下迁移请求:
UPDATE table1
SET table1.value = table2.value
FROM table1
INNER JOIN table2
ON table2.othervalue2 = table1.key
WHERE table2.othervalue3 is NULL
很好用。但不能用Oracle。我知道用Oracle在更新中做join不是不可能的,所以我用这个:
UPDATE table1 SET table1.value = (SELECT table2.value
FROM table2
WHERE table2.othervalue2 = table1.key
AND table2.othervalue3 is NULL)
WHERE EXISTS (SELECT table2.value
FROM table2
WHERE table2.othervalue2 = table1.key
AND table2.othervalue3 is NULL)
但我有一个ORA-01427:子查询返回多行。
谢谢
1条答案
按热度按时间yptwkmov1#
我 会 说 你 有 不 一致 的 数据 。 从 你 得到 的 错误 我 会 说 你 在 指定 的 查询 中 有 重复 。
中 的 每 一 个
您 可能 需要 检查 它 。 或者 您 需要 更 好 地 指定 您 要 选择 进行 更新/合并 的 数据 。