触发器代码如下:
create or replace trigger trigger_33zOtisNB5cZ_LMAhwtmDg
before insert or update of STUNAME
on T_STU for each row
begin
if inserting then
insert into table_33zOtisNB5cZ_LMAhwtmDg values ('insert',sysdate,:new.STUID);
elsif updating then
insert into table_33zOtisNB5cZ_LMAhwtmDg values ('update',sysdate,:new.STUID);
elsif deleting then
insert into table_33zOtisNB5cZ_LMAhwtmDg values ('delete',sysdate,:old.STUID);
end if;end;
java执行代码:
PreparedStatement state = conn.prepareCall(sql);
state.execute();
执行时出错,猜测原因:执行的时候将上述语句翻译成了带参数的查询,如果把创建触发器语句中的:new,:old等关键字去掉则执行成功
解决方案:
Statement state = conn.createStatement();
state.execute(sql);
问题解决!