2012-11-27 2 views
0

이 업데이트 문은 앞에 삽입 문이 몇 개있는 저장 프로 시저에 추가하려고합니다. 나는 컴파일하려고 할 때 ORA-00933을 얻었지만 어떤 문제도 보이지 않습니다. 나는 SQL 서버에 익숙하다고 말하며, 이것이 오라클 번역의 관점에서 어리석은 것이라면 나를 용서해주십시오.업데이트가 저장 프로 시저를 컴파일하지 못했습니다.

UPDATE 
    APEX_QC_TLINK_AGENTS 
SET 
    I_FK_TLINK_TEAM = SHG_DATAW.APEX_QC_TLINK_TEAMS.I_SK_TLINK_TEAM 
FROM 
    SHG_DATAW.APEX_QC_TLINK_AGENTS 
LEFT JOIN 
    [email protected]_SPECIALIST 
    ON 
    SHG_DATAW.APEX_QC_TLINK_AGENTS.A_FORENAME = CMS_W_AGENT_DETAILS.FIRST_NAME 
    AND 
    SHG_DATAW.APEX_QC_TLINK_AGENTS.A_SURNAME = CMS_W_AGENT_DETAILS.LAST_NAME 
LEFT JOIN 
    SHG_DATAW.APEX_QC_TLINK_TEAMS 
    ON 
    CMS_W_AGENT_DETAILS.TEAM_NAME = SHG_DATAW.APEX_QC_TLINK_TEAMS.A_TEAMNAME 
WHERE 
    SHG_DATAW.APEX_QC_TLINK_TEAMS.I_SK_TLINK_TEAM <> APEX_QC_TLINK_AGENTS.I_FK_TEAM; 

필요한 경우 전체 저장 프로 시저를 제공 할 수 있습니다 (필요한 경우).

많은 항상 감사합니다 :)

마커스

답변

1

오라클은 UPDATE... FROM는 SQL Server가 않습니다 구성을 지원하지 않습니다. 대신 MERGE statement을 사용해야합니다. 다음과 같은 형식이어야합니다.

MERGE INTO APEX_QC_TLINK_AGENTS A 
USING 
(
SELECT SHG_DATAW.APEX_QC_TLINK_TEAMS.I_SK_TLINK_TEAM 
FROM 
    SHG_DATAW.APEX_QC_TLINK_AGENTS 
LEFT JOIN 
    [email protected]_SPECIALIST 
    ON 
    SHG_DATAW.APEX_QC_TLINK_AGENTS.A_FORENAME = CMS_W_AGENT_DETAILS.FIRST_NAME 
    AND 
    SHG_DATAW.APEX_QC_TLINK_AGENTS.A_SURNAME = CMS_W_AGENT_DETAILS.LAST_NAME 
LEFT JOIN 
    SHG_DATAW.APEX_QC_TLINK_TEAMS 
    ON 
    CMS_W_AGENT_DETAILS.TEAM_NAME = SHG_DATAW.APEX_QC_TLINK_TEAMS.A_TEAMNAME 

) B 
ON (B.I_SK_TLINK_TEAM <> A.I_FK_TEAM) 
WHEN MATCHED THEN 
UPDATE SET A.I_FK_TLINK_TEAM = B.I_SK_TLINK_TEAM; 
관련 문제