Excluir triggers por comando SQL

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
andremelim
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 28 Jan 2009 8:19 am
Localização: Rondonópolis - muito

Olá pessoal,

Gostaria de saber se existe alguma maneira de dropar (remover) as triggers de um determinado usuario do banco de dados sem ter que executar um comando DROP para cada trigger. Existe alguma tabela de sistema do oracle que guarda as referencias dessas triggers e que permita eu excluir os registros dessa tabela? Exemplo:

Selecionar tudo

delete from <nome_tabela_sistema> where <nome_campo_ref_trigger> = :nome_trigger
No sistema existem varias triggers, e dá trabalho ficar excluindo uma por uma, se houvesse uma maneira de fazer isso via comando seria mais fácil.

Grato pela atenção,
André
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Bem, se você quiser dropar TUDO de um usuário, é possível um

Selecionar tudo

DROP user CASCADE
Mas muito cuidado com isso, ehhhe Eu já vi acontecer verdadeiros DESASTRES com esse comando :-)
jp_lopes
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Seg, 02 Fev 2009 12:08 pm
Localização: Rio de janeiro - RJ
João Paulo Lopes - DBA

Fala André, acho que o que você quer é isso aqui.

Selecionar tudo

DECLARE 
CURSOR CRS_TRIGGERS IS
 SELECT OWNER,TRIGGER_NAME FROM DBA_TRIGGERS
   WHERE OWNER ='&USUARIO' ;
BEGIN
 FOR REG IN CRS_TRIGGERS LOOP
  EXECUTE IMMEDIATE ('DROP TRIGGER '||REG.OWNER||'.'||REG.TRIGGER_NAME||' ');  
 END LOOP;
END; 
Esse bloco deleta todas as triggers do usuário que você definir, mas lembre-se, ela apaga TODAS as triggers sem destinção, o que dependendo da situação pode ser bastante perigoso.

Espero ter ajudado.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes