Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #74765
    Anônimo

      Ol? amigos, preciso saber qual ou quais tabelas foram alteradas ( Inclus?o de colunas, altera??o de tipos … )
      Algu?m sabe como fa?o isso, via SQL ?

      #74766
      Anônimo

        vc pode executar o seguinte SQL :

        select object_name, created, last_ddl_time
        from dba_objects a
        where a.OBJECT_TYPE = ‘TABLE’

        #74769
        Anônimo

          [quote=”Anonymous”:2axrs5ef]vc pode executar o seguinte SQL :

          select object_name, created, last_ddl_time
          from dba_objects a
          where a.OBJECT_TYPE = ‘TABLE'[/quote]

          Ol? amigo, muito obrigado pela resposta.

          Mas qual a diferen?a entre CREATED ( CTIME ), LAST_DDL_TIME ( MTIME ) E TIMESTAMP ( STIME ) ?

          Eu tenho como saber quais colunas da tabela foram criadas, alteradas ou incluidas ?

          #74770
          Anônimo

            created — data em que a tabela foi criada

            last_ddl_time — data da ?ltima altera??o na tabela : cria??o nova coluna, altera??o ou elimina??o de coluna…

            timestamp ? o mesmo que created s? que em formato AAAA-MM-DD HH:MI:SS

            usando a coluna LAST_DDL_TIME podemos descobrir as tabelas que sofreram altera??o.

            o seguinte SQL tras as tabelas que sofrem altera??es nos ?ltimos 5 dias:

            select *
            from dba_objects a
            where a.OWNER = ‘USUARIOBANCO’
            and a.OBJECT_TYPE = ‘TABLE’
            and a.LAST_DDL_TIME >= sysdate-5

            assim que descobrir uma maneira de trazer QUAIS colunas foram alteradas te aviso

            #74771
            Anônimo

              Muito obrigado pela ajuda.
              Se descobrir como fa?o pra saber quais colunas foram alteradas, poste aqui. ok

              Valeu 😆

              #74772
              Marcio68Almeida
              Participante

                Essa informa??o n?o tem no Oracle…
                O que voc? poderia fazer, mas n?o ? recomendado, ? colocar uma trigger na tabela DBA_TAB_COLUMNS (ou algo parecido) onde, quando houvesse alguma atualiza??o inserisse em uma outra tabela…
                ? poss?vel que isso seja uma view, ent?o teria que procurar qual a tabela de origem para inserir a trigger…

                #74773
                Anônimo

                  Achei alguma coisa no Google falando sobre auditoria DE TABELAS ( AUDIT ), mas n?o entendi muito bem o que ?, e como aplicar.
                  Ser? que poderia dar certo ?

                  #74774
                  Marcio68Almeida
                  Participante

                    Essa auditoria se refere a mudan?a de estrutura ou a consultas e mudan?a de conte?do ???
                    A que eu conhe?o se refere a consultas e mudan?as de conte?do…

                    #74775
                    Anônimo

                      ? para mudan?a de estrutura.

                      Vou explicar o que quero fazer:
                      Tenho as mesmas tabelas em bancos diferentes, gostaria de saber quais tabelas e colunas foram alteradas ( Estrutura ) em um banco para alterar as outras dos outros bancos.

                      #74777
                      Anônimo

                        voc? consegue criar um dblink entre os bancos que vc quer comparar ??

                        se vc conseguir, podemos fazer uma query usando a view DBA_TAB_COLUMNS de ambos os bancos e comparar os registro que tem em um e n?o tem no outro. Tamb?m ? poss?vel determinar as diferen?as de estruturas das tabelas…

                        j? fiz isso algumas vezes… s? precisa do dblink

                        #74778
                        Anônimo

                          Ai eh q ta o problema.
                          Um banco est? aqui e o outro l? em outra cidade.
                          O q est? aqui “deveria” ser c?pia do q est? l?, mas n?o eh.

                          #74779
                          Anônimo

                            vamos assumir ent?o que vc n?o tem acesso remoto ao outro banco. Existe algu?m l? capaz de gerar um ‘export’pra vc ??

                            se sim, pe?a para tal pessoa criar uma tabela com o conte?do da dba_tab_columns :

                            create table colunas as select * from dba_tab_columns

                            depois, pe?a para exportarem a tabela e enviarem a vc por e-mail…n?o deve ficar t?o grande assim…

                            num pr?ximo passo vc deve import?-la no seu schema e ent?o comparar com a sua dba_tab_columns … ? 1/2 lusitano, concordo, mas n?o consegui pensar em algo mais f?cil…

                            Agora, se l? n?o existir ningu?m que possa fazer isso, nem vc instruindo por telefone… complicou tudo…

                            #74780
                            Anônimo

                              Fiz um programinha que varre todas as tabelas alteradas, gra?as a ajuda do sql acima.
                              Este programa varre o banco e gera um arquivo com todas as tabelas criadas e alteradas e tamb?m suas colunas.
                              Assim a pessoa do outro lado s? roda ele e ele compara o arquivo gerado com o banco e faz as atualiza??es.
                              O problema ? q o banco eh grande e tenho tabelas com v?rias colunas, a varredura e atualiza??o t? demorando pra caramba.
                              Se al?m de saber quais tabelas foram alteradas eu soubesse quais colunas foram alteradas ficaria bem mais r?pido.
                              Este ? meu problema. 🙁

                              #74781
                              Anônimo

                                se vc conseguir criar a tabela anterior como te passei ser? poss?vel descobrir as colunas alteradas + ou – assim :

                                select * from dba_tab_columns a
                                where not exists (select 0 from colunas b where b.owner =a.owner
                                and b.table_name = a.table_name and b.column_name = a.column_name )
                                and a.owner = ‘NOMEUSUARIOBANCO’

                                com esse SQL voc? conseguir? ver as tabelas que foram alteradas – colunas eliminadas ou inseridas.

                                para saber as que tabelas que tiveram colunas alteradas
                                vc pode usar o seguinte :

                                select a.OWNER, a.TABLE_NAME, a.COLUMN_NAME, a.DATA_TYPE,
                                b.OWNER, b.TABLE_NAME, b.COLUMN_NAME, b.DATA_TYPE
                                from dba_tab_columns a, colunas b
                                where a.OWNER = b.OWNER
                                and a.TABLE_NAME = b.TABLE_NAME
                                and a.COLUMN_NAME = b.COLUMN_NAME
                                and ( a.DATA_TYPE b.DATA_TYPE or a.DATA_LENGTH a.DATA_LENGTH )
                                and a.OWNER = ‘NOMEUSUARIOBANCO’

                                esse select tr?s pra vc as colunas das tabelas que est?o diferentes nos 2 bancos…

                                eu rodei comparando bancos com 65000 colunas e foi r?pido 2.43 segundos

                                se vc conseguir que algu?m exporte a tabela dba_tab_columns como surgeri, crie um ?ndice por owner, table_name e column_name depois que vc importar… assim ai ficar bem mais r?pida a compara??o…

                                andei analisando o dicin?rio do Oracle e n?o encontrei nenhuma informa??o que internamente ele mant?m sobre aletra??es de colunas…

                                #74803
                                Anônimo

                                  N?o consegui achar nenhum registro de colunas alteradas.
                                  Vou usar este exemplo q vc me passou, testei aqui e ficou bem r?pido.
                                  Vai resolver, Muito obrigado 😀

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