SQL Merge语句适用于Oracle 11g,但不适用于9i

时间:2012-05-17 14:58:07

标签: sql oracle11g oracle9i

我有一个SQL MERGE语句在Oracle 11g(开发环境)中完美运行,但是当我尝试在Oracle 9i(生产环境)中运行它时,它给出了以下错误:ORA-00905:缺少关键字。

有没有办法在Oracle 9i中实现这项功能?这是声明:

MERGE INTO non_asset dst
   USING (SELECT tag, comments, computer_role
            FROM non_asset_backup
           WHERE sub_group = 'AALVOIP') src
   ON (dst.tag = src.tag)
   WHEN MATCHED THEN
      UPDATE
         SET dst.comments = src.comments,
             dst.computer_role = src.computer_role

1 个答案:

答案 0 :(得分:3)

在9 i 中,WHEN MATCHEDWHEN NOT MATCHED分支都是强制性的。在10g 之后,其中一个可能丢失(但不是两个,显然)。 请参阅http://docs.oracle.com/cd/B10501_01/server.920/a96540/statements_915a.htm#2080942http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm#i2081218