为什么数据库触发器在oracle DB中无效?

时间:2009-04-16 13:17:39

标签: oracle triggers

我手动创建了一个触发器(通过将SQL从另一个oracle db粘贴到管理控制台中)自动递增表的主键,当我在对象浏览器中查看触发器时触发器被列为无效

为什么会出现这种情况?

以下是重新创建触发器的SQL:

CREATE OR REPLACE TRIGGER  "BI_AGENTEVENTDATA" 
  before insert on "AGENTEVENTDATA"               
  for each row  
begin   
    select "AGENTEVENTDATA_SEQ".nextval into :NEW.ID from dual; 
end; ;
/
ALTER TRIGGER  "BI_AGENTEVENTDATA" ENABLE
/

2 个答案:

答案 0 :(得分:2)

你确定序列存在并且可以被触发器使用吗?

试试这个:

select sequence_name from user_sequences;

答案 1 :(得分:0)

尝试没有“。”的触发器。换句话说:

CREATE OR REPLACE TRIGGER  "BI_AGENTEVENTDATA" 
  before insert on "AGENTEVENTDATA"               
  for each row  
begin   
    select AGENTEVENTDATA_SEQ.nextval into :NEW.ID from dual; 
end; ;
/
ALTER TRIGGER  "BI_AGENTEVENTDATA" ENABLE
/