CLAUSULA WHERE "IN" MAIS DE MIL REGISTROS

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Denis
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 10 Jun 2015 12:31 pm

BOA TARDE PESSOAL,

SOU INICIANTE NESSA ÁREA, ONDE VENHO POR MEIO DESSA, SOLICITAR UM AUXILIO DE AMBOS, VISTO NUMA RÁPIDA PESQUISA NESSE CANAL, NÃO ENCONTRAR ALGO PARECIDO COM MINHA DUVIDA.

ESTOU COM O SEGUINTE PROBLEMA:

TENHO UM "SELECT" ONDE NECESSITO PASSAR MAIS DE "MIL VALORES" PARA PESQUISA NA CLAUSULA "WHERE" "IN", POREM A FERRAMENTA O QUAL ESTOU UTILIZANDO "DEVELOPER VERSÃO 4.0.0.13, NÃO SUPORTA MAIS QUE MIL REGISTROS.
QUAL SERIA A MELHOR MANEIRA DE FAZER ESSE "SELECT"?
O ARQUIVO EXTERNO QUE EU POSSUO TEM 2 MIL E 547 REGISTROS, UMA UNICA COLUNA, TAMANHO DO CAMPO 15 CARACTERE E O SEU FORMATO É XLS........
DESDE já AGRADEÇO A TODOS.
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Olá Denis,

E simples pegue seu arquivo e crie uma tabela com essas informações.

no select faça assim

Selecionar tudo

select * from xxx_tabela
where coluna in (select coluna from xxxx_table1) ;
Qualquer coisa posta aí.

Douglas - Madmax
Denis
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qua, 10 Jun 2015 12:31 pm

Deu certo, valeu Douglas

Denis
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Denis,

Uma "solução tosca", caso não dispusesse de uma tabela para relacionar no IN seria você "quebrar" a relação de valores da IN em grupos de 999 itens ou menos. Para isso você deveria combinar cláusulas "IN" e "OR".

Ex:

Selecionar tudo

SELECT  ...
   FROM ..
WHERE (COLUNA IN (1,2,3...999) OR
       COLUNA IN (1001,1002...1999) OR
       COLUNA IN (2001,2002...2999))
Abs,

Sergio
Responder
  • Informação