Um Guia Abrangente de Accionadores Desactivadores no Oracle

Introdução aos gatilhos Oracle

Os gatilhos Oracle são procedimentos armazenados que são automaticamente executados sempre que certos eventos ocorrem dentro de uma base de dados. Os gatilhos podem ser utilizados para automatizar tarefas, aplicar regras de negócio, validar dados introduzidos, e muito mais. Embora os gatilhos possam ser incrivelmente úteis, pode haver alturas em que é necessário desactivá-los para resolver um problema ou fazer alterações à base de dados sem accionar o código no gatilho. Neste artigo, explicaremos como desactivar os gatilhos no Oracle.

identificar os gatilhos na sua base de dados

Antes de poder desactivar qualquer gatilho, terá de saber quais os gatilhos que já se encontram na sua base de dados. Para encontrar esta informação, pode utilizar a seguinte consulta:

SELECT trigger_name FROM all_triggers;

Esta consulta irá listar todos os gatilhos na sua base de dados. Assim que tiver esta lista, poderá então passar a desactivar os gatilhos.

desactivar um gatilho único

Para desactivar um gatilho único, pode usar o seguinte comando:

ALTER TRIGGER_nome_do_acionador> DISABLE;

Substitua pelo nome do gatilho que pretende desactivar. Este comando desactivará o gatilho, mas não o apagará. Para voltar a desactivar o gatilho, pode usar o seguinte comando:

ALTER TRIGGER_name> ENABLE;

Desactivar gatilhos múltiplos de uma só vez

Se precisar de desactivar gatilhos múltiplos de uma só vez, pode usar o seguinte comando:

ALTER TRIGGER_name1>, , DISABLE;

Substitua , , e pelos nomes dos gatilhos que pretende desactivar. Este comando desactivará todos os gatilhos listados. Para os voltar a desactivar, pode utilizar o seguinte comando:

ALTER TRIGGER_name1>, , ENABLE;

Desactivar todos os gatilhos numa tabela

Se precisar de desactivar todos os gatilhos numa tabela específica, pode usar o seguinte comando:

ALTER TABELA DISABLE ALL TRIGGERS;

Substitua pelo nome da tabela cujos gatilhos pretende desactivar. Este comando desactivará todos os gatilhos da tabela especificada. Para os voltar a desactivar, pode usar o seguinte comando:

ALTER TABELA ENABLE TODOS OS TRIGREGADORES;

Desactivar todos os gatilhos num esquema

Se precisar de desactivar todos os gatilhos num esquema específico, pode usar o seguinte comando:

ALTER SCHEMA DISABLE ALL TRIGGERS;

Substituir pelo nome do esquema cujos gatilhos pretende desactivar. Este comando desactivará todos os gatilhos no esquema especificado. Para os voltar a desactivar, pode usar o seguinte comando:

ALTER SCHEMA ENABLE ALL TRIGGERS;

Desactivar todos os gatilhos numa base de dados

Se precisar de desactivar todos os gatilhos numa base de dados, pode usar o seguinte comando:

ALTER DATABASE DISABLE ALL TRIGGERS;

Este comando desactivará todos os gatilhos numa base de dados. Para os voltar a activar, pode usar o seguinte comando:

ALTERAR A BASE DE DADOS ACTIVAR TODOS OS GATILHOS;

Considerações finais

Desactivar os gatilhos pode ser uma ferramenta útil, mas deve ser usada com cautela. Certifique-se de que sabe o que está a fazer antes de desactivar quaisquer gatilhos, e certifique-se de os voltar a activar quando tiver terminado a resolução de problemas.

FAQ
Como desactivar todos os gatilhos na base de dados?

Há algumas maneiras de desactivar todos os gatilhos numa base de dados:

1) Use a declaração ALTER DATABASE para modificar a base de dados e definir a opção ENABLE_TRIGGERS para FALSE. Isto desactivará todos os gatilhos da base de dados.

2) Utilizar o procedimento sp_configure system stored procedure para alterar a opção da base de dados “permitir actualizações”. Isto também desactivará todos os gatilhos na base de dados.

3) Utilizar a declaração DISABLE TRIGGER para desactivar os gatilhos individuais. Isto pode ser feito a nível da tabela ou a nível da base de dados.

4) Utilizar o SQL Server Management Studio para desactivar os gatilhos. Expandir o nó “Objectos do Servidor”, clicar com o botão direito do rato em “Gatilhos”, e seleccionar “Desactivar todos os gatilhos”.

Como desactivar o gatilho no procedimento Oracle?

Pode utilizar a seguinte sintaxe para desactivar um gatilho num procedimento Oracle:

ALTER TRIGGER ALTERNOME_disparador DISABLE;

Como desactivar todos os gatilhos numa base de dados Oracle?

Antes de respondermos como activar todos os gatilhos numa base de dados Oracle, vamos compreender o que são e o que fazem os gatilhos.

Os gatilhos são procedimentos armazenados que são automaticamente executados ou disparados quando certas condições são cumpridas. Por exemplo, um gatilho pode ser accionado quando um novo registo é inserido numa tabela. Os gatilhos podem ser utilizados para impor regras de negócio, efectuar cálculos, ou modificar dados antes ou depois da sua introdução na base de dados.

Em Oracle, os gatilhos são armazenados na base de dados e são associados a uma tabela, visualização, ou esquema específico. Quando um disparo é disparado, a Oracle chama o corpo de disparo e passa-lhe os valores antigos e novos dos dados que provocaram o disparo. O corpo de gatilho pode então realizar quaisquer acções necessárias, tais como actualizar outras tabelas ou enviar uma notificação por correio electrónico.

Para activar todos os disparadores na base de dados Oracle, pode utilizar o seguinte comando SQL:

ALTERAR TODOS OS GATILHOS ACTIVADOS;