Menu fechado

Arquitetos de Sistemas

Trigger de DDL Oracle , identificar um “drop column” , oracle , pl-sql , oracle11g

Visualizando 0 resposta da discussão
  • Autor
    Posts
    • #80759 Responder
      Anderson Paraibano
      Participante

      A manipulação de objetos de banco de dados é uma tarefa essencial para qualquer DBA ou desenvolvedor. No caso do Oracle, uma das ações comuns que podem ocorrer é a exclusão de colunas de tabelas existentes, usando a instrução “DROP COLUMN”. No entanto, identificar quando uma coluna é excluída pode ser crucial para garantir a integridade dos dados e a consistência do esquema do banco de dados.

      Neste artigo, vamos explorar como criar um trigger de DDL no Oracle, especificamente na versão 11g, para identificar quando uma coluna é excluída de uma tabela. Além disso, utilizaremos a linguagem PL/SQL para implementar essa solução.

      Antes de prosseguirmos, é importante entender o que é um trigger de DDL. Um trigger de DDL é um objeto de banco de dados que é acionado automaticamente em resposta a eventos de definição de dados (Data Definition Language – DDL). Esses eventos podem incluir criação, alteração ou exclusão de objetos, como tabelas, colunas, índices, entre outros.

      Vamos começar criando a tabela de log que será usada para armazenar as informações sobre as colunas excluídas. Suponha que temos a seguinte estrutura para essa tabela:

      sql
      Copy code
      CREATE TABLE log_exclusao_coluna (
      nome_tabela VARCHAR2(100),
      nome_coluna VARCHAR2(100),
      data_exclusao DATE
      );
      Agora, vamos criar o trigger que será disparado sempre que uma coluna for excluída de uma tabela. Este trigger será responsável por inserir um registro na tabela log_exclusao_coluna com as informações relevantes.

      sql
      Copy code
      CREATE OR REPLACE TRIGGER trg_exclusao_coluna
      AFTER DROP
      ON SCHEMA
      DECLARE
      v_nome_tabela VARCHAR2(100);
      v_nome_coluna VARCHAR2(100);
      BEGIN
      — Obter o nome da tabela e da coluna excluída
      v_nome_tabela := ora_dict_obj_name;
      v_nome_coluna := ora_dict_obj_name;

      — Inserir registro na tabela de log
      INSERT INTO log_exclusao_coluna (nome_tabela, nome_coluna, data_exclusao)
      VALUES (v_nome_tabela, v_nome_coluna, SYSDATE);
      END;
      /
      Agora que o trigger foi criado, sempre que uma coluna for excluída em qualquer tabela do esquema, um registro será inserido na tabela log_exclusao_coluna com o nome da tabela, o nome da coluna e a data da exclusão.

      É importante ressaltar que, para que o trigger funcione corretamente, ele deve ser criado com privilégios de administrador do banco de dados. Além disso, deve-se levar em consideração que o trigger será disparado para qualquer coluna excluída em qualquer tabela do esquema em que ele foi criado.

      Para testar o trigger, você pode executar uma instrução DROP COLUMN em uma tabela existente. Por exemplo:

      sql
      Copy code
      ALTER TABLE minha_tabela DROP COLUMN minha_coluna;
      Após a execução dessa instrução, um registro será inserido na tabela log_exclusao_coluna com as informações correspondentes.

      Em resumo, neste artigo exploramos como criar um trigger de DDL no Oracle 11g para identificar quando uma coluna é excluída de uma tabela. Util

Visualizando 0 resposta da discussão
Responder a: Trigger de DDL Oracle , identificar um “drop column” , oracle , pl-sql , oracle11g
Sua informação:





<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">

Nova denúncia

Fechar