Pular para o conteúdo
  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 10 anos, 11 meses atrás por Avatar de David SiqueiraDavid Siqueira.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #106140
    Avatar de Eliane Moreira dos SantosEliane Moreira dos Santos
    Participante

      Pessoal, bom dia…..preciso de uma ajuda, é o seguinte:

      preciso montar um consulta para comparar valores de todas as sequences, por exemplo, eu quero saber qual o último valor de cada sequence, e consultar qual o valor da última sequence na tabela.

      Por exemplo, eu tenho a sequence sq_pessoa, que o último valor é 1256, e tenho a tabela tb_pessoa, onde o último valor da seq_pessoa é 1270. Eu gostaria de saber se tem alguma consulta que faça essas comparações.

      Eu consigo listar as sequences com a consulta abaixo, mas não sei como juntar essa informação com a consulta das sequencias nas tabelas.

      select sequence_owner, sequence_name, last_number from all_sequences

      #106141
      Avatar de rmanrman
      Participante

        @Eliane Moreira dos Santos

        Para consultar a último valor gerado pela sequence execute:


        SELECT SEQ_PESSOA.NEXTVAL FROM dual;
        SELECT SEQ_PESSOA.CURRVAL FROM dual;

        LAST_NUMBER da VIEW ALL_SEQUENCES, não traz o que você imagina. LAST_NUMBER considera o cache, logo não é o último número gerado realmente.

        Juntar as 2 informações em uma única consulta creio que não vai ser possível. Não existe nada que junta a SEQUENCE de quem usa a SEQUENCE, não existe um vinculo formal, tanto é que você pode usar apenas 1 SEQUENCE para usar como PRIMARY KEY em todas as tabelas, sim eu sei que isso é absurdo, mas eu já vi isso. :woohoo:

        O que é possível é gera 2 listas e comparar manualmente.

        Mas me diz, qual é o real problema a ser resolvido?

        #106151
        Avatar de David SiqueiraDavid Siqueira
        Participante

          Elaine,

          Não sei se entendi direito, mas seria isso aqui que você deseja :

          SELECT (SELECT last_number
          FROM all_sequences
          WHERE sequence_name = 'ACCOUNT_CODE_DEFINITION_SEQ'
          AND sequence_owner = 'SQUIGGLY') max_sequence,
          (SELECT MAX(id_number)
          FROM squiggly.ACCOUNT_CODE_DEFINITION) max_id_number
          FROM dual

          Só ajuste para o nome das suas tabelas e owners.

          Espero ter ajudado.

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