oracle触发器抛出ora-04098

时间:2012-03-09 21:08:30

标签: oracle plsql triggers

寻求一些基本的帮助,可能是代码中的拼写错误。

我有以下内容:

create table scott.original(mystr varchar2(10))
insert into scott.original values('hi')
select * from scott.original

CREATE OR REPLACE TRIGGER scott.original_trigger
AFTER INSERT ON scott.original
FOR EACH ROW
BEGIN
    select 'deleting or updating' from dual
END;
/

insert into scott.original values('bye')

插入'bye'抛出错误ora-04098,我在oracle中看不到问题,第一次尝试在oracle中创建一个触发器。

1 个答案:

答案 0 :(得分:4)

PL / SQL块中的任何SELECT语句都需要选择数据INTO某个变量。

CREATE OR REPLACE TRIGGER scott.original_trigger
AFTER INSERT ON scott.original
FOR EACH ROW
DECLARE
    l_variable VARCHAR2(100);
BEGIN
    select 'deleting or updating' 
      into l_variable
      from dual
END;
/

将是有效的语法。当然,这个触发器实际上并没有做任何事情,但我认为这是你计划稍后解决的问题。