Database Trigger will be Executed Twice After Table Creation in SQL Developer 4.0.3

(Doc ID 1951793.1)

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

for example:

create table testlog(log varchar2(255));

2. Create procedure as the following one:

for example:


SQL> create or replace procedure write_log(plog varchar2) is pragma
  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
2  begin
   write_log('XXXXXX=' || ORA_DICT_OBJ_NAME);
   raise_application_error(-20000, 'CUSTOM ERROR');

Trigger created.

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