create or replace trigger kbmanager.my_trigger 错误肯定出现在这一句上。kbmanager取掉
我发现了两个问题: 1、info char(10)后边少了一个分号 2、你的程序体即begin和end之间一条语句也没有。 试试改成这样: create or replace trigger kbmanager.my_trigger after insert or update or delete on kbmanager.persons for each row declare info char(10); --添加一个分号 begin /*if inserting then info:='insert'; elsif updating then info:='update'; else info:='delete'; end if;*/ --insert into test1(fid,fname,FDate)values('aaa','aaa',sysdate); null; --增加一条可执行的语句 end; 执行后若还提示错误,请用show error命令将具体的错误显示出来
to: kmwy(追而不求): 按你的改法,我成功了,谢谢 但我还有一个也帮我看看,看看哪错,编译还是和上面一样的提示,过不去create or replace trigger kbmanager.testperson after insert or update on kbmanager.persons for each row declare info char(10); --添加一个分号 begin if new.FLevel = '1' then--我的意思是如果插入或更新的记录的FLevel字段值是'1',我想向另一表插入相关数据 insert into kbmanager.test1(fid,fname)values('aaa','aaa'); else null; end;
create or replace trigger kbmanager.testperson after insert or update on kbmanager.persons for each row declare info char(10); --添加一个分号 begin if :new.name = '1' then--我的意思是如果插入或更新的记录的FLevel字段值是'1',我想向另一表插入相关数据 insert into kbmanager.test1(fid,fname)values('aaa','aaa'); else null; end if;--应加这一句就行了 end;
错误肯定出现在这一句上。kbmanager取掉
1、info char(10)后边少了一个分号
2、你的程序体即begin和end之间一条语句也没有。
试试改成这样:
create or replace trigger kbmanager.my_trigger
after insert or update or delete on kbmanager.persons
for each row
declare
info char(10); --添加一个分号
begin
/*if inserting then
info:='insert';
elsif updating then
info:='update';
else
info:='delete';
end if;*/
--insert into test1(fid,fname,FDate)values('aaa','aaa',sysdate);
null; --增加一条可执行的语句
end;
执行后若还提示错误,请用show error命令将具体的错误显示出来
按你的改法,我成功了,谢谢
但我还有一个也帮我看看,看看哪错,编译还是和上面一样的提示,过不去create or replace trigger kbmanager.testperson
after insert or update on kbmanager.persons
for each row
declare
info char(10); --添加一个分号
begin
if new.FLevel = '1' then--我的意思是如果插入或更新的记录的FLevel字段值是'1',我想向另一表插入相关数据
insert into kbmanager.test1(fid,fname)values('aaa','aaa');
else
null;
end;
after insert or update on kbmanager.persons
for each row
declare
info char(10); --添加一个分号
begin
if :new.name = '1' then--我的意思是如果插入或更新的记录的FLevel字段值是'1',我想向另一表插入相关数据
insert into kbmanager.test1(fid,fname)values('aaa','aaa');
else
null;
end if;--应加这一句就行了
end;