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

在线Oracle SQL创建触发器报PLS-00103错误问题求助

问题原因

你遇到的报错由以下语法疏漏导致:

  • INSERT语句末尾缺少PL/SQL强制要求的语句结束符;,导致解析器无法正确识别语句边界,把后续的END关键字误判为INSERT语句的一部分,触发符号不匹配错误
  • 可选优化:CASE表达式建议补充ELSE兜底分支,避免极端场景下tx变量被赋值为NULL,导致审计表插入异常数据

修正后的触发器代码

CREATE OR REPLACE TRIGGER customers_audit_trg
AFTER UPDATE OR DELETE
ON customers
FOR EACH ROW
DECLARE
    tx VARCHAR2(10);
BEGIN
    -- 确定事务类型
    tx := CASE
        WHEN UPDATING THEN 'UPDATE'
        WHEN DELETING THEN 'DELETE'
        ELSE NULL -- 可根据业务需求修改兜底值
    END;
    
    -- 插入审计记录,补充了语句结束分号
    INSERT INTO audits(table_name, transaction_name, by_user, transaction_date)
    VALUES('customers', tx, USER, SYSDATE);
END;
/

额外验证说明

如果执行后仍有告警,可检查两项配置:

  • 你使用的在线Oracle环境是否开放了PL/SQL触发器创建权限,部分沙箱环境会限制DDL操作
  • 确认customers、audits表的字段定义和你提供的一致,避免字段长度溢出、类型不匹配报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:06:02