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

      Olá Pessoal.

      Tem algum modo de simular a clausula Any do postgres no Oracle.

      no postgres podesse fazer:

      select * from tbl_pessoa where cod_pessoa any( vetor_codigos )

      sendo este vetor_codigos um array

      teria como eu fazer isto numa “table of” ?

      Grato a todos.

      #78801
      itiburski
      Participante

        O Oracle possui a clausula IN, para a qual você passa uma série de valores que serão avaliados. Ex:

        select * from pessoa where cod_pessoa in (1, 4, 9, 22);

        Quanto ao pl/table, você pode criar uma função que concatena os valores contidos nela e monte dinamicamente uma consulta conforme o exemplo acima. Não é a melhor alternativa pois SQL dinâmico é bastante custoso para o banco, mas é uma forma de resolver seu problema.

        #78802
        Marcio68Almeida
        Participante

          Não sei se tem direto em array, provavelmente sim mas você teria que fazer uma função ou algo similar…
          Se você for consultar as ocorrências de outra tabela, você poderia usar :
          Select * from tabela1
          Where codigo in (Select codigo from tabela2)

          #78804
          chduarte
          Participante

            Na verdade como vc esta utilizando um array ou vc pega os valores do varray e monta um query dinamica ou utilize bulk collection.

            No site tahiti.oracle.com vc tem a documentacao de como utilizar o bulk collection.

            []

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