为视图创建“代替”触发器时编译错误

时间:2010-11-28 23:07:04

标签: oracle plsql

我为一个简单的视图创建了一个“而不是”触发器,该视图只对表上的select *和不执行任何操作的触发器(我想最小化问题):

create or replace view tmp(id, nazwa, nip, adres, zalega, punkty) as
select * from klient

create or replace trigger tmp_trg
instead of insert
on tmp
for each row
begin

end;

视图已创建。 然后,当我想要声明此触发器时,sql developer返回错误:

错误(8,1):PLS-00103:当遇到以下情况之一时遇到符号“END”:如果循环mod为空,则返回选择更新,而使用'an identifier''a double-quoted delimited-identifier''一个绑定变量'<< close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe

2 个答案:

答案 0 :(得分:5)

只需添加" null;"在开始和结束之间。

答案 1 :(得分:1)

  

一个什么都不做的触发器(我想尽量减少问题):

我不确定我理解为什么你什么都不做需要触发器?

要回答,您的触发器代码块中没有有效的PL / SQL语句,请添加NULL以使其成为有效块并且不执行任何操作。

create or replace trigger tmp_trg
instead of insert
on tmp
for each row
begin
NULL;
end;