首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行query -ORA-00933时出现Oracle错误: SQL命令未正确结束

执行query -ORA-00933时出现Oracle错误: SQL命令未正确结束
EN

Stack Overflow用户
提问于 2019-10-23 22:07:35
回答 2查看 126关注 0票数 1
代码语言:javascript
复制
UPDATE FRA_SAP
SET FRA_SAP.ENT_ATTRIBUTES = FE.ENT_ATTRIBUTES
FROM FRA_SAP FES
INNER JOIN FRA_ENTITIES FE
    ON FES.ID = FE.ID

我得到以下错误:

代码语言:javascript
复制
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-23 22:15:14

Oracle通常不支持UPDATE中的FROMJOIN。等效项为:

代码语言:javascript
复制
UPDATE FRA_SAP
    SET FRA_SAP.ENT_ATTRIBUTES = (SELECT FE.ENT_ATTRIBUTES
                                  FROM FRA_ENTITIES FE
                                  WHERE FES.ID = FE.ID
                                 )
    WHERE EXISTS (SELECT 1
                  FROM FRA_ENTITIES FE
                  WHERE FES.ID = FE.ID
                 );

注意:如果FRA_ENTITIES中有多个匹配的行,则此查询将返回错误。SQL Server中的等效查询--使用您的语法--将使用任意匹配行进行更新。

票数 1
EN

Stack Overflow用户

发布于 2019-10-23 22:10:41

您似乎正在使用SQL Server update join语法,该语法在Oracle上不起作用。一个可以工作的版本使用相关子查询:

代码语言:javascript
复制
UPDATE FRA_SAP fes
SET ENT_ATTRIBUTES = (SELECT fe.ENT_ATTRIBUTES
                      FROM FRA_ENTITIES fe
                      WHERE fes.ID = fe.ID);

下面的代码更接近于真正的update join,也可能有效:

代码语言:javascript
复制
UPDATE 
(
    SELECT fes.ENT_ATTRIBUTES AS OLD, fe.ENT_ATTRIBUTES AS NEW
    FROM FRA_SAP fes
    INNER JOIN FRA_ENTITIES fe
        ON fes.ID = fe.ID
) t
SET t.OLD = t.NEW;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58524735

复制
相关文章

相似问题

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