为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:
Posted
技术标签:
【中文标题】为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:【英文标题】:Why am I getting this error? PLS-00103: Encountered the symbol "CREATE" when expecting one of the following:为什么我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”: 【发布时间】:2021-07-19 03:54:57 【问题描述】:我收到了这个错误
编译失败,第 2 行 (11:52:47) 与编译错误相关的行号与第一个 BEGIN 语句相关。这只会影响数据库触发器的编译。
PLS-00103:在期待其中一个时遇到符号“CREATE” 以下:(开始 case 声明退出 goto if loop mod null pragma 在
代码:
create or replace trigger "GDS_CLIENT_T1"
BEFORE
insert or update or delete on GDS_CLIENT
for each row
begin
create or replace trigger "client insert"
before
insert on "Identify Client"
for each row
begin
select nv1(max(id),0)+1 into :NEW_ID FROM IDENTIFY CLIENT
end;
【问题讨论】:
您正在创建一个触发器在另一个触发器中;您似乎不太可能这样做,所以看起来您正在尝试创建两个触发器,而您错过了第一个触发器的主体。我还建议您避免使用带引号的标识符创建对象;并为您的 ID 使用序列或身份列。 【参考方案1】:CREATE OR REPLACE TRIGGER
是一个 DDL 命令,需要完整的触发器规范才能创建;在你的情况下,你的第一个命令还没有结束:
create or replace trigger "GDS_CLIENT_T1"
BEFORE
insert or update or delete on GDS_CLIENT
for each row
begin
此时预计您将完成GDS_CLIENT_T1
触发器的定义;但是,您有 create or replace trigger
,它不是有效的 PL/SQL。
【讨论】:
以上是关于为啥我会收到此错误? PLS-00103:在预期以下情况之一时遇到符号“CREATE”:的主要内容,如果未能解决你的问题,请参考以下文章