Toad World® Forums

Trigger Not Showing Invalid


Ok, I think I am going to be banned here pretty soon, but…

I have a trigger that is invalid, it does not show as invalid attached are some print screens…


Hi Dale,

I just need some more information so I can reproduce this issue.
When you open the trigger, does the status say “Invalid”? Is this an syntactical error of the trigger body?
The attached image shows the icon when it is marked as invalid and valid. Are those ones in the DB Explorer or is in the DB navigator?


When you double click the trigger is shows as invalid in the editor, I did not compile to find the error as it may not really have any syntax errors, this is a test system and my guess is the table changed and no one recompiled the trigger. I could compile it but that may loose this test case if needed. Of the images, the first one is how the trigger looks in the db navigator, the second one is how a package shows up in the explorer when invalid (I included this just in case you might think it was a font or graphic issue). The third is how that same trigger shows in the explorer. If you want me to compile it I can, not a problem, just leaving it as is in case you need more info…


Hi Dale,
Would you be able to send me the extract DDL of this trigger? I’m still trying to recreate the issue but didnt have any luck. All I did was to create a trigger that insert the next value of a sequence into a table everytime the table is updated. When the table is modified (i.e. add columns, change column names) --> the triggers become invalid. And they are displayed as invalid both in DB navigator and DB Explorer.
If I have a chance to look at the trigger code, I may figure out something.



Ok, maybe this will help. The Trigger that is under the user shows as invalid the trigger under the table does not, here are the steps I went through:
create table dale
(field1 varchar2(100),
field2 number(10,3),
field3 varchar2(50));

create or replace trigger dale_trg_bi
before insert on dale
referencing old as old new as new
for each row
hld_str varchar2(100);
select substr(:new.field1, 1, 50)
into hld_str
from dual;

if trim(hld_str) < 10 then
:new.field3 := hld_str;
end if;
:new.field2 := length(:new.field1);


alter table dale drop (field3);

The Trigger [+] directly under the user is the first picture
The Trigger [+] under the table is the second picture

Hope this helps…


Thanks Dale. I can reproduce it now. The problem was that I always look at the trigger node under User instead of the one under table. :smiley:
I will let you know when it got fixed.


This issue has been fixed.