【问题标题】:Update Statement Issue更新声明问题
【发布时间】:2021-04-21 15:47:29
【问题描述】:

我已经构建了一个我认为是简单的更新语句,但一直遇到:一般 SQL 错误。 ORA-00933: SQL 命令未正确结束

声明:

UPDATE        TEAM_MEMBER_TEMPLATE
SET           TEAM_MEMBER_TEMPLATE.TITLE = TEAM_MEMBER.TITLE
FROM          TEAM_MEMBER_TEMPLATE
INNER JOIN    TEAM_MEMBER
ON            TEAM_MEMBER_TEMPLATE.TEAM_MEMBER_ID= TEAM_MEMBER.ID

这是我之前为确保表格/字段可以更新所做的工作:

UPDATE TEAM_MEMBER_TEMPLATE
SET TITLE = 'TEST'
WHERE ID = 38

我哪里错了?运行 Oracle 版本 12.1.0.1.0

【问题讨论】:

    标签: sql oracle sql-update


    【解决方案1】:

    Oracle 不支持UPDATE 中的FROM。您可以使用相关子查询:

    UPDATE TEAM_MEMBER_TEMPLATE TMT
        SET TITLE = (SELECT TM.TITLE
                     FROM TEAM_MEMBER TM
                     WHERE TMT.TEAM_MEMBER_ID = TM.ID
                    );
    

    注意:在数据库中重复这样的数据通常是一个坏主意。相反,您应该只在需要标题时使用JOIN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多