为啥我会收到此错误? 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”:的主要内容,如果未能解决你的问题,请参考以下文章

PLS-00103:在预期以下情况之一时遇到符号“ON”

PLS-00103:在预期以下情况之一时遇到符号“END”

PLS-00103:在预期以下情况之一时遇到符号“TEST_PKG”:;

错误:00103 用于 plsql 过程

错误(30,11):PLS-00103:遇到符号更新错误

在oracle sql中,我在删除插入表后创建但收到此错误PLS-00103:遇到符号“DELETE”[重复]