编写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
相关产品推荐
相关产品推荐

