Pular para o conteúdo
  • Este tópico contém 4 respostas, 3 vozes e foi atualizado pela última vez 13 anos, 5 meses atrás por Fábio Prado.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #104436
    rsanches
    Participante

      Boa tarde,

      Qual é a melhor forma de controlar sequencias garantindo a integridade dentro do ORACLE sem utilizar a sequence?

      EX: Eu tenho uma tabela de clientes onde preciso controlar a sequencia da ordem de serviço por cliente, neste caso eu posso ter varias solicitações para o mesmo cliente ao mesmo tempo e não posso correr o risco de pegar a mesma senquencia.

      Tabela de clientes
      COD Descricao NR.ORD.SERV
      1 Cliente 01 10
      2 Cliente 02 35
      3 Cliente 03 40

      Obrigado,

      Rogério Sanches

      #104437
      Fábio Prado
      Participante

        Rogério,

        Primeiramente eu gostaria de entender pq é q vc não pode usar uma sequence?

        Att,

        Fábio Prado
        http://www.fabioprado.net

        #104438
        rsanches
        Participante

          Fábio,

          Este é so um exemplo da minha necessidade, não posso abrir em detalhes aqui no forum.

          Para entender melhor, eu tenho uma tabela com 10.000 clientes e para a necessidade no negocio eu preciso ter uma sequencia para cada um dos 10.000 clientes, fica impossível gerenciar 10.000 sequences. Por isto queria saber qual seria a melhor forma de controlar esta situação, seja atraves de procedure… Mas eu preciso garantir que este numero não ira se repetir.

          Obrigado,

          Rogério Sanches

          #104440
          rman
          Participante

            @rsanches

            Eu não recomendo nenhuma implementação a não ser a sequence do Oracle, visto que é um objeto nativo. Mas caso ainda você gostaria de não utilizar a sequence, você pode criar uma função que busque a sequencia armazenada em uma tabela, implemente um semáforo para garantir a integridade.

            Conheço uma aplicação que usava uma implementação dessa que atualmente foi migrada para a sequence de Oracle, a função tinha um baixo desempenho devido o semáforo.

            Qual é a parte impossível gerenciar 10.000 sequences ? Não entendi.

            #104441
            Fábio Prado
            Participante

              @rsanches,

              Muito estranho o q vc está explicando! Para mim não faz sentido ter 1 sequence para cada cliente! Não entendo o porquê disso! O normal seria uma sequence somente para ser usada junto com à tabela de clientes.

              Sem entender o porquê, não consigo avaliar uma boa solução!

              []s

              Fábio Prado
              http://www.fabioprado.net

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