Pular para o conteúdo
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #99771
    mpvargas
    Participante

      Bom dia amigos,
      Me deparei com uma dúvida?
      No sistema que usamos existe um campo chamado R_E_C_N_O_…
      esse campo incrementa 1 a cada registro adicionado

      Existe esse campo ou algum similar no Oracle? Que no caso permita que eu faça uma busca por ele…
      por exemplo, se eu quiser saber qual o registro ou linha nº 500 da tabela?

      Como os registros ficam gravados fisicamente na tabela?

      Obrigado pela ajuda

      #99772
      Ishii
      Participante

        Olá.

        O campo R_E_C_N_O na verdade seria o similar a um ID interno da MER que você tem no seu app.

        O Oracle como Banco de Dados armazena isso no rowid que seria um endereço físico de gravação nos blocos do datafile.

        []s Ishii

        #99779
        mpvargas
        Participante

          Ishii

          É possível ler o ROWID dando um select, por exemplo?

          #99782
          Ishii
          Participante

            Olá,

            Sim!

            select rowid, t.* from table t

            []s Ishii

            #99784
            mpvargas
            Participante

              Ishii, fiz o teste abaixo

              SQL> SELECT ROWID, R_E_C_N_O_ FROM CT2010 WHERE R_E_C_N_O_ BETWEEN 13436701 AND 13436705;

              ROWID R_E_C_N_O_


              AAC/FcAAAAAAQBxAAC 13436701
              AAC/FcAAAAAAQBxAAF 13436702
              AAC/FcAAAAAAQBxAAG 13436703
              AAC/KNAAAAAASvfAAB 13436704

              Eu gostaria de saber se é possível comparar o rowid com o R_E_C_N_O_ por exemplo, para saber se a tabela está gravada fisicamente na sequencia correta…
              O problema que estamos tendo é que suspeitamos que alguem apagou o R_E_C_N_O_ manualmente.

              #99794
              rman
              Participante

                [quote=”mpvargas”:3fsrfb6l]Ishii, fiz o teste abaixo

                SQL> SELECT ROWID, R_E_C_N_O_ FROM CT2010 WHERE R_E_C_N_O_ BETWEEN 13436701 AND 13436705;

                ROWID R_E_C_N_O_


                AAC/FcAAAAAAQBxAAC 13436701
                AAC/FcAAAAAAQBxAAF 13436702
                AAC/FcAAAAAAQBxAAG 13436703
                AAC/KNAAAAAASvfAAB 13436704

                Eu gostaria de saber se é possível comparar o rowid com o R_E_C_N_O_ por exemplo, para saber se a tabela está gravada fisicamente na sequencia correta…
                O problema que estamos tendo é que suspeitamos que alguem apagou o R_E_C_N_O_ manualmente.[/quote]

                Não entendi, “…apagou o R_E_C_N_O_ manualmente.”

                Apagaram linha da tabela, e tem R_E_C_N_O_ saltado ?

                Deram update no R_E_C_N_O_ setando null ?

                #99841
                mpvargas
                Participante

                  Desculpe, me expressei mal

                  na verdade Apagaram linha da tabela, e tem R_E_C_N_O_ saltado

                  #99843
                  rman
                  Participante

                    Descubriu alguma coisa ?

                    Se deletaram as linhas, provavelmente foi via banco direto, a aplicação não deleta de verdade, só da update na coluna D_E_L_E_T_

                    Muita gente tem acesso direto a base ?

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