0
我是Oracle的新手。我正尝试使用MERGE INTO方法更新SELECT DISTINCT语句中值的表值。我想根据USING表中的内容有条件地更新表的值。 的什么,我基本上要一个快速的图是Oracle合并到(多个连接表)更新集(多个Where语句)返回无效的列规范
MERGE
INTO update_table ut
USING
(SELECT DISTINCT
t1.column_1
,t2.column_2
FROM table_1 t1
INNER JOIN table_2 t2
ON t1.foreign_key = t2.primary_key) st
ON (ut.pk = st.column_1)
WHEN MATCH UPATE
SET(ut.update_column = st.column_2
WHERE st.column_1 = 1
AND st.column_2 = 1
,ut.update_column = st.column_2
WHERE st.column_1 = 2
AND st.column_2 = 2);
然而,当我这样做,我得到的,我用SET行了无效的列规格错误。我怎样才能解决这个问题,以成功更新表格,最好是ANSI标准?
好了,所以如果我的理解是正确的,这意味着我不能使用其中在这种情况下,语句。我需要拥有正确的数据集,而不是依赖update语句中的where子句。 – Jizzle21013
@ Jizzle21013:如果你愿意,你可以包含'ut.column_name = value'的where子句以及更新。但对于源表,最好将它限制在using子句本身中。 –