首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新无法编译存储过程

更新无法编译存储过程
EN

Stack Overflow用户
提问于 2012-11-28 00:39:05
回答 1查看 82关注 0票数 0

我正尝试将此update语句添加到前面有几个insert语句的存储过程中。当我尝试编译时,我得到了ORA-00933,但我没有看到任何问题。我要说的是,我已经习惯了SQL Server,所以请原谅我在翻译到Oracle方面有什么愚蠢的地方。

代码语言:javascript
复制
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
  CMS_W_AGENT_DETAILS@SHG_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;

如果任何人需要的话,我可以提供(如果需要)整个存储过程。

非常感谢,一如既往:)

马库斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-28 00:52:04

Oracle不支持SQL Server所支持的UPDATE... FROM结构。您应该改用MERGE statement。它应该是这样的:

代码语言:javascript
复制
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
  CMS_W_AGENT_DETAILS@SHG_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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13588869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档