Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #86026
    JamirJr
    Participante

      Estou com a mesma dúvida do colega em
      http://glufke.net/oracle/viewtopic.php?t=382

      ou seja, Última atualização da tabela? não de DDL, mas de DML. Acredito que tenha sim esta informação em alguma tabela do oracle, pq esta é uma informação muito importante até para o próprio Oracle. Alguem sabe onde está? Pode ser lá no fundão do oracle, hehehe…

      SYS.user$ u, SYS.ts$ ts, SYS.seg$ s, SYS.obj$ co, SYS.tab$ t, SYS.obj$ o, SYS.obj$ cx, etc

      #86027
      Marcio68Almeida
      Participante

        pesquise log miner

        #86028
        Avatar photoRegis Araujo
        Participante

          Fala Jamir… ble…

          Então mano..

          Acho que para isto vc pode ativar o monitoring na tabela e depois dar select na tabela user_tab_modifications..

          SQL> alter table TB_CLIENTES monitoring;

          Table altered

          SQL> select * from user_tab_modifications;

          TABLE_NAME INSERTS UPDATES DELETES TIMESTAMP
          ---------- -------- -------- -------- ---------
          TB_CLIENTES 0 2 6 31/3/2009 18:05:02

          Bom.. eu pelo menos faço assim.. se houver outra maneira mais facil será otimo…

          Abraços…

          #86030
          David Siqueira
          Participante

            Ola rapaziada, desconheço que o Oracle armazene isso automaticamente, porém há algumas features que poderiam ser usadas para sanar sua necessidade :

            1- Logminer ( Como o colega disse)
            2 – Criar um Trigger de Audit em cima da Tabela desejada, onde faria um insert em uma table auxiliar com data, usuário e comando de alteração ( se necessário)
            3 – Habilitar auditoria na base de Dados
            4- Via monitorig table, não é muito eficiente dependendo do que você realmente precise como forma de auditoria, mas é um paleativo interresante, fácil e rápido de implementar.

            Abcs.

            David

            #86048
            Marcio68Almeida
            Participante

              Lembrando sempre que toda facilidade tem um custo, às vezes muito alto para ser implementado…
              Colocar uma auditoria pode custar muito tempo, espaço e recursos…
              Veja muito bem qual o seu objetivo final…

              #86063
              JamirJr
              Participante

                É isso ai galera, vamos no fundo do oracle!!! (ou não, hehehehe é pq quase não se acha documentação e comentários sobre isso!)

                …a view citada pelo colega (user_tab_modifications) é um bom começo…

                segundo o http://www.ss64.com/orad/USER_TAB_MODIFICATIONS.html
                existe o campo TIMESTAMP(Timestamp of last time this row was modified)

                esse campo vem da tabela SYS.mon_mods_all$, além dessa, a view user_tab_modifications lê as tabelas: SYS.obj$, SYS.tab$, SYS.tabsubpart$

                filtrando por usuario:
                SELECT *
                FROM SYS.user$ u, SYS.mon_mods_all$ m, SYS.obj$ o, SYS.tab$ t
                WHERE u.NAME = ‘XPTO’
                AND o.obj# = m.obj#(+)
                AND u.user# = o.owner#
                AND o.obj# = t.obj#

                consegui pegar todas as tabelas de XPTO

                Porém fiz alguns testes(insert, update) e não apareceu nada novo em SYS.mon_mods_all$.

                Será q estamos no caminho certo? o q está faltando? gerar estatisticas?

                obs. esta com monitoring = yes

                Muito obrigado

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