Sql 正在尝试将更新转换为合并

Sql 正在尝试将更新转换为合并,sql,oracle,merge,sql-update,Sql,Oracle,Merge,Sql Update,我的问题很简单。我试图将UPDATE语句转换为MERGE语句以获得更好的性能,因为更新计数可能在10K-1M之间。这是我的更新代码: UPDATE table_1 t1 SET t1.col_1 = (SELECT t2.name FROM table_2 t2 WHERE t2.fn = t1.col_1), t1.Col_3 = (SELECT t2.name

我的问题很简单。我试图将UPDATE语句转换为MERGE语句以获得更好的性能,因为更新计数可能在10K-1M之间。这是我的更新代码:

UPDATE table_1 t1
   SET t1.col_1 =
          (SELECT t2.name
             FROM table_2 t2
            WHERE t2.fn = t1.col_1),
       t1.Col_3 =
          (SELECT t2.name
             FROM table_2 t2
            WHERE t2.fn = t1.Col_3),
       t1.Col_5 =
          (SELECT t2.name
             FROM table_2 t2
            WHERE t2.fn = t1.Col_5);
我试着换成合并:

MERGE INTO Table_1
     USING (SELECT NAME FROM table_2) A
        ON (1 = 1)
WHEN MATCHED
THEN
   UPDATE SET Table_1.col_1 = A.NAME,
              Table_1.col_3 = A.NAME,
              Table_1.col_5 = A.NAME;
以上代码抛出错误,请帮我解决问题。提前感谢。

使用

WHEN NOT MATCHED THEN
    INSERT (table_1.col1)
    VALUES (a.name);

添加错误消息plaese。您使用的是哪种DBMS?神谕SQL Server?@Jens错误:无法获取到的稳定计数update@a_horse_with_no_name我认为Oracle 10GA缺失
时不匹配
不会导致“无法获取稳定的记录集”错误(在解析时会导致语法错误)