我不确定我能提供多少信息,因为我仍然不确定它为什么会发生,但我在Oracle SQL开发人员的触发器中的PL / SQL块随机时间被设置为null。我发生这种情况时:删除行,启用触发器,编译触发器,插入行(通过ODAP.net)和更新行。
我尽力找到答案,但我找不到任何答案。任何想法都会非常受欢迎。
此外,不确定是否发布此处或serverfault。
触发器是对此的变体:
create or replace TRIGGER basic_ticket_trg
BEFORE INSERT ON basic_ticket
FOR EACH ROW
BEGIN
<<COLUMN_SEQUENCES>>
BEGIN
IF INSERTING AND :NEW.ID IS NULL THEN
SELECT basic_ticket_seq.NEXTVAL INTO :NEW.ID FROM SYS.DUAL;
END IF;
END COLUMN_SEQUENCES;
END;
if语句不断被设置为null,因此最终看起来像:
create or replace TRIGGER basic_ticket_trg
BEFORE INSERT ON basic_ticket
FOR EACH ROW
BEGIN
<<COLUMN_SEQUENCES>>
BEGIN
null;
END COLUMN_SEQUENCES;
END;
答案 0 :(得分:1)
我仍然不完全100%确定它为什么会发生,但对于那些观看,它是由更新触发器将作用的表引起的。
答案 1 :(得分:0)
尝试摆脱标签:&#34; COLUMN_SEQUENCES&#34;,只需删除它,每件事情都会很完美,至少它对我有用,我认为这是一个将代码删除的错误必须删除列或更改其名称时为NULL。