how to drop all the triggers and sequences in a schema

Hi,

I have many triggers and sequences in my schema. I would like to drop all the triggers, sequences. What is the command i have to use to drop all sequences and triggers. Any code sample, links, ideas, resources highly appreciated. Thanks in advance.
LVL 7
gudii9Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ajexpertConnect With a Mentor Commented:
The following code should help you.  You have to pass the schema name.
My advice is to take a backup before executing this proceudre.
 

CREATE OR REPLACE PROCEDURE PR_DROP_SEQUENCE_TRIGGER
AS
CURSOR C1 IS
SELECT * FROM ALL_OBJECTS AO
WHERE OBJECT_TYPE 
IN ('SEQUENCE', 'TRIGGER')
AND AO.OWNER = <schemaname>
ORDER BY OBJECT_TYPE;
 
 
BEGIN
 
FOR c1_rec IN C1
 
LOOP
   IF c1_rec.OBJECT_TYPE = 'SEQUENCE' THEN
      EXECUTE IMMEDIATE ' DROP SEQUENCE ' || c1_rec.object_name;
   ELSIF c1_rec.OBJECT_TYPE = 'TRIGGER' THEN
      EXECUTE IMMEDIATE ' DROP TRIGGER ' ||c1_rec.object_name;
   END IF;
 
END LOOP;
 
END;

Open in new window

0
 
k_murli_krishnaConnect With a Mentor Commented:
You can also generate a drop script using:

SELECT 'DROP TRIGGER ' || OWNER || '.' || OBJECT_NAME || ';' FROM ALL_OBJECTS AO
WHERE OBJECT_TYPE = 'TRIGGER' AND OWNER = <schemaname> ORDER BY OBJECT_NAME;

Similarly,
SELECT 'DROP SEQUENCE ' || OWNER || '.' || OBJECT_NAME || ';' FROM ALL_OBJECTS AO
WHERE OBJECT_TYPE = 'SEQUENCE' AND OWNER = <schemaname> ORDER BY OBJECT_NAME;
Here also you have to pass the schema name.
You can redirect output of both SELECT's to an .sql file and run them separately at SQL prompt
sql> connect scott/tiger@testdb
sql> spool <path>\log.txt
sql> @ <path>\drop_triggers.sql
sql> @ <path>\drop_sequences.sql
sql> spool off
0
 
gudii9Author Commented:
As in the post 24065873. Do I need to run that procedure from the super user like 'system'. Or can i execute from the same schema where the triggers, sequences are present since I gave all privileges with admin option to that particular schema. Please advise
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
gudii9Author Commented:
As in the post 24065873 when I try to run from same schema it did not drop the triggers, sequences. In 'system' user  when i compile the procedure it says compiled. But I could not find it under procedures to run or execute. Please advise.
0
 
k_murli_krishnaCommented:
In Cursor SELECT instead of SELECT *, use OBJECT_NAME, OBJECT_TYPE. You need to create the procedure in a user i.e. schema instead of connecting using system and creating it as it is i.e.
CREATE OR REPLACE PROCEDURE SCHEMA_NAME.PR_DROP_SEQUENCE_TRIGGER

Go through following references for more details:
http://www.experts-exchange.com/Database/Oracle/Q_21747080.html
http://forums.oracle.com/forums/thread.jspa?messageID=1101028
http://snipplr.com/view/3776/list-all-stored-procedures-in-an-oracle-database/

Also, as one more/last option, check the syntax for CREATE OR REPLACE PROCEDURE from ajexpert. I am not doubting it but just in case there is some slip.
0
 
FayyazConnect With a Mentor Commented:
Let say you want to drop the triggers and sequences for schema 'GUDII9' then
SQL> conn system/manager
SQL> spool drop_trig.sql
SELECT 'DROP TRIGGER ' || OWNER || '.' || OBJECT_NAME || ';' FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TRIGGER' AND OWNER = 'GUDII9' ;
SQL> spool off;
SQL> @drop_trig.sql
same is the case for sequence drop.

SQL> conn system/manager
SQL> spool drop_seq.sql
SELECT 'DROP SEQUENCE  ' || OWNER || '.' || OBJECT_NAME || ';' FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'SEQUENCE' AND OWNER = 'GUDII9' ;
SQL> spool off;
SQL> @drop_seq.sql

 
0
 
k_murli_krishnaCommented:
Fayyaz, I missed something and you missed the complimentary.
0
 
awking00Connect With a Mentor Commented:
See attached.
drop-objects.txt
0
 
gudii9Author Commented:
Thank you very much for your help. I appreciate it
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.