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

编写Oracle更新存储过程触发PL/SQL: ORA-00933错误,求排查解决

解决PL/SQL: ORA-00933错误的方法

嘿,作为SQL新手遇到这种语法错误太正常啦,别慌!你的ORA-00933错误根源很明确——UPDATE语句的SET子句语法写错了,多个字段赋值时必须用逗号分隔开,你刚好漏了这个关键符号。

先看你原代码里的问题部分:

UPDATE lds_consultant 
SET location = cation specialist_area = s_area 
WHERE consultant_id = c_id;

这里location = cation和specialist_area = s_area之间缺少了逗号,数据库没法正确识别这是两个独立的赋值操作,所以才抛出了“SQL命令未正确结束”的错误。

修正后的完整存储过程代码

create or replace PROCEDURE update_con ( 
    c_id in lds_consultant.consultant_id%type, 
    cation in lds_consultant.location%type, 
    s_area in lds_consultant.specialist_area%type 
) IS 
BEGIN 
    UPDATE lds_consultant 
    SET location = cation,  -- 补上逗号分隔两个字段赋值
        specialist_area = s_area 
    WHERE consultant_id = c_id; 
END; 

额外小建议(可选)

为了后续代码可读性更高,建议参数名尽量见名知意,比如把cation改成p_location(用p_前缀标识参数),s_area改成p_specialist_area,这样下次看代码时能一眼对应到字段,减少混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:00:38