SQL 命令未在更新语句中正确结束 [重复]
Posted
技术标签:
【中文标题】SQL 命令未在更新语句中正确结束 [重复]【英文标题】:SQL Command not properly ended in update statement [duplicate] 【发布时间】:2014-09-27 12:37:57 【问题描述】:有 2 个表,INVN_SBS
和 INVC_ITEM
。
希望根据 if INVN_SBS.ITEM_SID
和 INVNSBS.ITEM
匹配和 INVN_SBS.DCS_CODE = 'SMP'
的条件将表中的一个字段设置为 active = '0'
到目前为止我有:
UPDATE INVN_SBS
SET ACTIVE='0'
FROM
INVN_SBS,
INVC_ITEM
WHERE
INVN_SBS.ITEM_SID = INVC_ITEM.ITEM_SID
and INVN_SBS.DCS_CODE='SMP'
但是运行时我得到:
ORA-00933:SQL 命令未正确结束。
我能够运行一个选择语句来向我显示符合我的条件的项目,但更新给我带来了麻烦。
【问题讨论】:
Oracle 不支持update
中的from
子句。使用merge
或相关子查询。
【参考方案1】:
这是一种可能的解决方案:
UPDATE INVN_SBS
SET ACTIVE='0'
where
DCS_CODE='SMP' and
ITEM_SID in (
select ITEM_SID
from INVC_ITEM
)
如果您的主键支持它,这也应该有效:
UPDATE (
select INVN_SBS.ACTIVE
FROM
INVN_SBS,
INVC_ITEM
WHERE
INVN_SBS.ITEM_SID = INVC_ITEM.ITEM_SID
and INVN_SBS.DCS_CODE='SMP'
)
SET ACTIVE='0'
如果您的主键不支持第二种方法,它会在编译时通知您。
【讨论】:
以上是关于SQL 命令未在更新语句中正确结束 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE:错误错误(6,3):PL/SQL:SQL 语句被忽略和错误(8,3):PL/SQL:ORA-00933:SQL 命令未在过程中正确结束
试图在我的 SQL 表中插入多行。总是显示 SQL 命令未正确结束 [重复]
如何解决 ORA-00933:SQL 命令未在 oracle 中正确结束?
我将如何修复这些“ORA-00933:SQL 命令未正确结束”“ORA-00923:未在预期位置找到 FROM 关键字”错误?