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

Oracle触发器报错ORA-00906:缺少左括号,请求技术支持

问题排查与解决

错误原因

ORA-00906(缺少左括号)的问题出在触发器的WHEN子句语法上。Oracle要求WHEN关键字后必须用括号包裹完整的条件表达式,你的代码直接将EXISTS子查询写在WHEN之后,缺少了外层的括号,导致语法解析失败。

修正后的触发器代码

CREATE OR REPLACE TRIGGER check_limit_to_Y
AFTER INSERT OR UPDATE ON api_user
FOR EACH ROW
WHEN (EXISTS (SELECT '1' FROM profile b WHERE NEW.mvno_limit != 'Y' AND b.mvno_id = NEW.mvno_id))
BEGIN
   RAISE_APPLICATION_ERROR(-20999, 'MVNO LIMIT MUST BE SET Y FOR ANY REAL MVNO_ID');
END;
/

额外优化建议

  • 字符串比较优先使用<>替代!=,前者是ANSI SQL标准写法,兼容性更强
  • 代码中的关键字(如CREATE、OR REPLACE)统一大写,符合Oracle开发的通用规范,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:40:41