Sql 缺少BEFORE、AFTER或代替关键字

Sql 缺少BEFORE、AFTER或代替关键字,sql,plsql,compiler-errors,Sql,Plsql,Compiler Errors,在oracle数据库中,我遇到了一个缺少BEFORE、AFTER或INSTEAD关键字错误的小问题,但我不知道我的错误是什么 我已经在这里和其他网站上查看了一些答案,但无法找出我在触发器声明中做错了什么 此触发器的目的是记录数据库航班表中所做的所有更改(插入更新删除),并将更改后的值记录到记录表中,到目前为止,我在到达IF之前取出了所有其他部分,因为它会抛出错误 它告诉我错误:ORA-04071:在关键字之前、之后或替换关键字之前缺失 编辑的代码在注释中设置: 删除declare嘿,我刚刚将其更

在oracle数据库中,我遇到了一个缺少BEFORE、AFTER或INSTEAD关键字错误的小问题,但我不知道我的错误是什么

我已经在这里和其他网站上查看了一些答案,但无法找出我在触发器声明中做错了什么

此触发器的目的是记录数据库航班表中所做的所有更改(插入更新删除),并将更改后的值记录到
记录表中
,到目前为止,我在到达
IF
之前取出了所有其他部分,因为它会抛出错误

它告诉我错误:ORA-04071:在关键字之前、之后或替换关键字之前缺失

编辑的代码在注释中设置:


删除
declare
嘿,我刚刚将其更改为
as
,但仍然出现相同的错误消息:/只有一个错误,您在下面的语句中遗漏了触发器名称:create或replace trigger\u name触发器名称缺失。哦,该死的:0根本没有注意到!谢谢:)好的,谢谢!现在它几乎可以工作了,现在我必须在里面解决我的错误。显然,我无法绑定我的
:new.v_type
:new.systimestamp
。我甚至需要在这一点上添加一个变量吗?-因为在我看来这是一个很大的错误,因为我已经提到这是一个
插入类型更改
。是否有可能将该字符串绑定到变量中?此外,如何将新的
systimestamp
放入触发器内的我的表中?删除
declare
嘿,我刚刚将其更改为
as
,但它仍然会出现相同的错误消息:/只有一个错误,您在下面的语句中遗漏了触发器名称:create或replace trigger\u name触发器名称遗漏。噢,该死的:0根本没有注意到!谢谢:)好的,谢谢!现在它几乎可以工作了,现在我必须在里面解决我的错误。显然,我无法绑定我的
:new.v_type
:new.systimestamp
。我甚至需要在这一点上添加一个变量吗?-因为在我看来这是一个很大的错误,因为我已经提到这是一个
插入类型更改
。是否有可能将该字符串绑定到变量中?此外,如何将新的
systimestamp
放入触发器内的表中?
  create table logging_table (
    changeType varchar2(20),  
    changeTime timestamp, 
    changeUser varchar2(20),
    changeStatement varchar2(200));

create table flug2412 as select * from flug;

create or replace trigger change_flights
BEFORE insert /*or update or delete */ on flug2412 for each row
declare

  v_type varchar2(20);
  v_time timestamp;
  v_user varchar2(20); /*v_user varchar2(30) := user;*/
  v_statement varchar2(200);

begin 
  IF INSERTING THEN 
    v_type := 'I'; /*v_type := 'Insert';*/
    v_time := timestamp; 
    /* Select user into v_user from dual;*/ 
    v_statement := to_char('Insert'|| /*:new.v_type*/ 
                          || ', FlugzeugID: ' || :new.flugzeugid 
                          || ', GateID: ' || :new.gateid 
                          || ', Abflughafen: ' || :new.flughafen_abflug
                          || ', Destinations Flughafen: ' || :new.flughafen_destination
                          || ', Abflugzeit: ' || :new.systimestamp /*:new.abflugzeit*/
                          || ', Flugnummer: ' || :new.flugnummer
                          || ', Flugdauer: ' || :new.dauer);
    insert into logging_table(v_type, v_time, v_user, v_statement);  
  END IF; 
end;
/