我正在浏览 AskTom 网站,发现应该是一个非常强大的更新语句工具,但我的语句拒绝接受子查询后的别名。有人可以为我解释一下并可能给出解决方案吗?
Update (SELECT T.Date_,T.Name_
FROM TableA T, TableB P
WHERE P.Date_ = T.Date_
AND P.Name_ = T.Name_) SET P.ID = T.Name_
关于如何运行此类更新可能还有其他问题,那将是一个奖励。在这一点上,我对尝试理解别名问题更感兴趣。我试图加入
TableB.ID = TableA.Name_
但没有运气
具体来说,错误是 ORA-00904 无效标识符。
一如既往地提前感谢。
上述问题已为我解答,但我确实有一些其他问题,因为我试图理解它。
我现在得到 ORA-01779 无法修改映射到非键保留表的列。我想这是指我要更新的表正确吗?因为我可以从视图或任何其他可能没有 pk 或 fk 的适当来源进行更新。
这种类型的更新语句可以与 Oracle 临时表一起使用吗?或者我会遇到问题吗?
我可以使用这种类型的语句和 case 语句来更新 TableA 中的多个列还是会出现问题?
再次感谢。