合并语句生成异常,但为什么

时间:2013-01-22 09:43:19

标签: sql oracle merge merge-statement

此合并声明引发ORA-00905:缺少关键字异常。可能是什么问题? WHEN MATCHED分支的东西?

MERGE INTO WORKERPROJECT TARGET
USING (SELECT distinct
               w.worker_id,
               w.worker_type,
               w.project_id worker_project_id, 
               p.project_id project_project_id,
               p.dedicated_project_leader,
               p.dedicated_lead_developer,
               p.dedicated_lead_consultant,
               p.dedicated_supervisor
       from WORKER w 
       join PROJECT p on w.project_id = p.project_id
      ) SOURCE
   ON (TARGET.FK_worker_id=SOURCE.WORKER_ID)
 WHEN MATCHED THEN INSERT (TARGET.FK_WORKER_ID, TARGET.FK_PROJECT_ID,TARGET.IS_ACTIVE,POSITION) 
  VALUES (SOURCE.WORKER_ID,SOURCE.worker_project_id,'IS_ACTIVE',SOURCE.worker_type);

1 个答案:

答案 0 :(得分:2)

根据http://www.oracle-base.com/articles/10g/merge-enhancements-10g.php

您只能在不匹配的情况下进行插入。