Question

I seem to be seeing a lot of messages like this in my log:

Trigger DEV."MBR_TRG" was disabled before the load.
Trigger DEV."MBR_TRG" was re-enabled by another process.
SQL*Loader-951: Error calling once/load initialization
ORA-00604: error occurred at recursive SQL level 1
ORA-00054: resource busy and acquire with NOWAIT specified

This is on my local dev machine, so there shouldn't be anything else trying to insert into these tables. How can I track down the cause of this? And is there any way to prevent the triggers from being re-enabled (at least to see if I get an error anywhere in my script)?

Was it helpful?

Solution

If this is your local dev machine you can drop the trigger and recreate it later. Or you can change the trigger code to something that will not mess with your data but will only log execution so you can see when it was enabled.

OTHER TIPS

It looks like the type of trigger can have an impact on how sqlloader deals with the trigger. As far as tracking the cause I would try a DDL trigger

I was seeing these errors in direct path loads. The problem was not 'another process' as the error message suggested, but lack of the proper permissions for the user to disable the trigger. You must have permission to alter the table AND the trigger. Which means you must own the table, or have alter permission on the table, or have alter any table permission. Also, you must own the trigger, or have alter any trigger permission.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top