我有一个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
答案 0 :(得分:3)
在9 i 中,WHEN MATCHED
和WHEN NOT MATCHED
分支都是强制性的。在10g 之后,其中一个可能丢失(但不是两个,显然)。
请参阅http://docs.oracle.com/cd/B10501_01/server.920/a96540/statements_915a.htm#2080942与http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm#i2081218