【发布时间】:2015-06-19 14:46:25
【问题描述】:
我正在使用合并语句合并两个表,其中源表中的一行可能会更新目标表中的多行。
有点像这样
MERGE TABLE1 A
USING (SELECT EMP_CODE, DAYS_OFF FROM TABLE2) B
ON (A.ID = B.EMP_CODE)
WHEN MATCHED THEN
UPDATE SET A.DAYS_OFF = B.DAYS_OFF;
但是,当我尝试这个时,我得到SQL Error: ORA-30926: unable to get a stable set of rows in the source tables
有没有其他方法可以做到这一点?
【问题讨论】:
-
向我们展示你的完整存储过程
-
@jWeaver 我面临的问题与您提到的帖子中的问题不同。我的问题是我不能确保 ON (A.ID = B.EMP_CODE) 只返回一行。
-
您能分享两个表中的示例数据吗?
-
@jWeaver 我明白这对我来说似乎不合作,但我真的不能。有没有其他方法可以帮助我澄清问题?
-
@jWeaver 我已经尝试过您提到的帖子中提出的第一个解决方案,但现在它抛出“SQL 错误:ORA-01445: cannot select ROWID from, or sample, a join view without a key-保留表”
标签: sql oracle oracle10g sql-merge