Pular para o conteúdo

Marcado: 

Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #146057
    Avatar de MottaMotta
    Participante

      No Oracle é possível criar Triggers de DDL (Data Definition Language) algo do tipo

      create or replace trigger trg_ddl
         before ddl
          on database
        declare
        begin
        ...
        end;

      Minha , dúvida , como reconhecer um evento de exclusão de coluna de uma tabela ?

      ALTER TABLE <TABLE> DROP COLUMN <COLUMN>
      
      Dúvida sobre sintaxe, espero estar de acordo às normas.
      #146058
      Avatar de MottaMotta
      Participante
        #146059
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Yep, é isso aí… Faço porém duas Observações :

          1) não vejo muito sentido em se ter isso num database Produção, que seja profissionalmente Administrado : o MÍNIMO que se exige é que não seja casa da mãe Joana, que não seja qualquer um que possa alterar estruturas de tabelas… E em especial DROP, que FACILMENTE pode remover uma coluna / objeto usado/refernciado em trocentas stored PL/SQLs por exemplo, é sacal pra Resolver essas dependências depois…..

          E

          2) SE o ambiente realmente exige alterações frequentes de estrutura, TALVEZ o que vc possa fazer é simplesmente AUDITAR ISSO : https://community.oracle.com/thread/2455981?start=15&tstart=0 mostra um exemplo com a Auditoria tradicional Oracle (comando AUDIT)…..

          Abraços,

          Chiappa

          #146060
          Avatar photoJosé Laurindo Chiappa
          Moderador

            Ah, e só comentando : a auditoria Tradicional, ALÉM de não exigir programação, tal como mostrado no link que passei além disso TAMBÉM te dá de lambuja o TEXTO DO SQL executado e as BINDs , se vc estiver com Audit Extendida habilitada no banco…. A ser considerado….

            []s

            Chiappa

            #146061
            Avatar de MottaMotta
            Participante

              Concordo , mas …

              Nem sempre controlamos todos os processos e nem sempre humanos são os atores, temos no caso um ERP que usa o Banco em algum ponto que ainda não mapeamos o infeliz lê um dicionário defasado e achando colunas no Oracle que ele não tem dropa as “bichinhas” sem dó , até localizar o problema a trigger visa reduzir danos …

              Você sabe que seu problema é esdrúxulo quando a documentação é parca e existem poucas referências dele …

              #146062
              Avatar photoJosé Laurindo Chiappa
              Moderador

                Sim, para casos extremos, esdrúxulos e aberrantes do tipo é que a Oracle permite tanto Audit quanto trigger de de DDL… O que vc vai fazer agora, imagino, é DETECTAR EXATAMENTE quando quem/qual programa do sistema tá fazendo o tal DROP E assim que tiver a ** PROVA ** do mal-comportamento da Aplicação, abrir um TICKET no Suporte da Aplicação e demandar a Correção….
                É claro, principalmente se for ERP de fabricante pequeno e ruim, ele vai dar uma outra finalidade bem menos nobre pro seu ticket (o Suporte pós-venda da maioria desse pessoal é abaixo da crítica) mas afora isso, não tem o que mais vc fazer, Não Tem Como um BUG de aplicação ser corrigido pelo database….

                []s

                Chiappa

                #146064
                Avatar de MottaMotta
                Participante

                  Isto.

                  []s

                   

                Visualizando 7 posts - 1 até 7 (de 7 do total)
                • Você deve fazer login para responder a este tópico.
                plugins premium WordPress