Database Trigger will be Executed Twice After Table Creation in SQL Developer 4.0.3
Last updated on JUNE 28, 2017
Applies to:Oracle SQL Developer - Version 4.0 to 4.0 [Release 4]
Information in this document applies to any platform.
DB trigger is being executed twice after creating table in SQL Developer 4.0.3. This issue occurs under the following conditions:
- Trigger is system trigger.
- Trigger contains "raise_application_error(-20000, 'CUSTOM ERROR');"
This issue can be reproduced with the following steps:
1. Create a table
2. Create procedure as the following one:
insert into testlog(log) values (plog);
3. create system trigger which includes raise_application_error:
SQL> create or replace trigger insert_log after create on database
write_log('XXXXXX=' || ORA_DICT_OBJ_NAME);
raise_application_error(-20000, 'CUSTOM ERROR');
4. After creating a new table in SQL Developer, if you check table named testlog, you will find 2 inserted rows, meaning that trigger has been executed twice.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms