Oracle “PLS-00103:预期时遇到符号“异常”
触发码- 错误-Oracle “PLS-00103:预期时遇到符号“异常”,oracle,plsql,database-trigger,Oracle,Plsql,Database Trigger,触发码- 错误- 可能您应该在BEGIN指令之后声明一些内容,以使函数执行实际操作?这可能是SQL语法所要求的。这就是为什么不能在BEGIN之后直接放置异常的原因。正如@sanfor所说,您需要在BEGIN-EXCEPTION块之间有一些内容。我可以编译触发器- SQL> CREATE 2 OR 3 replace TRIGGER tib_ms_merchant_group BEFORE 4 INSERT 5 ON emp FOR EACH ROW DECLARE
可能您应该在BEGIN指令之后声明一些内容,以使函数执行实际操作?这可能是SQL语法所要求的。这就是为什么不能在BEGIN之后直接放置异常的原因。正如@sanfor所说,您需要在BEGIN-EXCEPTION块之间有一些内容。我可以编译触发器-
SQL> CREATE
2 OR
3 replace TRIGGER tib_ms_merchant_group BEFORE
4 INSERT
5 ON emp FOR EACH ROW DECLARE integrity_error EXCEPTION;
6
7 PRAGMA EXCEPTION_INIT (integrity_error, -20001);
8 errno INTEGER;
9 errmsg CHAR(200);
10 dummy INTEGER;
11 FOUND BOOLEAN;
12 BEGIN
13 NULL;
14 EXCEPTION
15 WHEN integrity_error THEN
16 raise_application_error(errno, errmsg);
17 END;
18 /
Trigger created.
SQL> sho err
No errors.
SQL>
只需替换表名并在开始后添加所需的触发器逻辑
"PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:
:= . ( @ % ;
The symbol ";" was substituted for "EXCEPTION" to continue."
SQL> CREATE
2 OR
3 replace TRIGGER tib_ms_merchant_group BEFORE
4 INSERT
5 ON emp FOR EACH ROW DECLARE integrity_error EXCEPTION;
6
7 PRAGMA EXCEPTION_INIT (integrity_error, -20001);
8 errno INTEGER;
9 errmsg CHAR(200);
10 dummy INTEGER;
11 FOUND BOOLEAN;
12 BEGIN
13 NULL;
14 EXCEPTION
15 WHEN integrity_error THEN
16 raise_application_error(errno, errmsg);
17 END;
18 /
Trigger created.
SQL> sho err
No errors.
SQL>