You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle使用同表数据执行UPDATE更新报00933错误该如何解决

ORA-00933报错的核心原因是Oracle数据库不支持UPDATE语句中使用FROM子句做表关联的语法,你使用的UPDATE JOIN写法仅适配SQL Server、PostgreSQL等数据库,不符合Oracle的语法规范,因此触发“SQL command not properly ended”错误。

你可以用以下两种方案实现同表更新需求:

方案1:子查询关联更新(Oracle传统写法)

UPDATE E095for f1
SET f1.usu_cgcstr = (
    SELECT f2.cgccpf
    FROM E095for f2
    WHERE f2.codfor = f1.codfor
)
WHERE f1.usu_intot = 'N'
-- 下方EXISTS条件可选,避免无匹配记录时将字段误更新为NULL
AND EXISTS (
    SELECT 1
    FROM E095for f2
    WHERE f2.codfor = f1.codfor
);

方案2:MERGE语句更新(Oracle更推荐的写法)

逻辑更简洁,无需重复编写关联条件,也不会出现无匹配记录误更新的问题:

MERGE INTO E095for f1
USING E095for f2
ON (f1.codfor = f2.codfor)
WHEN MATCHED THEN 
    UPDATE SET f1.usu_cgcstr = f2.cgccpf
    WHERE f1.usu_intot = 'N';

内容的提问来源于stack exchange,提问作者Fernandolk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:24:00