Fala galera…
O problema é o que está escrito no título. Cláusula IN nao aceita mais de 1000 parâmetros.
Já li na internet sobre fazer sub-queries ou entao usar EXISTS ou entao fazer vários OR para resolver.
Não queria fazer vários OR por conta de performance da query. Queria uma solução melhor.
Não consegui resolver usando as outras alternativas porque faco um query muito simples e nao consegui encaixar uma sub-query.
S preciso ver se os CPFs passados pelo usuário estão na tabela pessoa.
Alguem tem alguma ideia ?
Valeu!
Seu usuário entra com 1000 números de CPF?
Não há realmente muitas opções… recomendo uma subquery mesmo…
é uma opção de importar arquivo. Ai o usuário cadastro quantos vendedores ele tiver… O ultimo arquivo que peguei tinha quase 6000.
Aí preciso ver pegar cada um desses cpfs e ver se ele realmente existe.
A sub query para mim seria a melhor opção. Mas como fazê-la ? Não consegui. Só uso uma tabela.
Preencha uma tabela de entrada apenas com os números de cpf…
Daí você pode fazer um INNER JOIN com CPF…
Criar uma tabela temporário né? Tambem li sobre isso mas não tenho acesso ao banco para fazer. Ainda mais em produção.
A não ser que eu crie uma tabela real, e use só para isso. Quando acabar a operação eu apago os dados. Mas isso é uma gato gigante!
Eu imagino que deste arquivo importado todas informações são relevantes certo?
Então na tabela onde você armazena os dados do arquivo importado, você consulta os CPF.
Não precisa ser uma temporária.
Eu acho que entendi o que você quis dizer. Mas acho que nao dá.
Eu armazeno os dados do arquivo em duas tabelas X e Y.
Porem antes de salvar eu preciso ver o se CPF existe em outra tabela, que é a tabela de CPF da receita federal.
Não posso consultar na minha tabela.
Foi isso mesmo que vc quis dizer?
Geralmente há duas maneiras de importar um arquivo:
Você lê o arquivo linha a linha, validando os dados a cada linha
Você importa o arquivo inteiro para o banco (geralmente com utilitário específico do banco) e valida em blocos.
Particulamente eu prefiro a segunda abordagem.
O que faço é importar os dados de forma bruta para alguma tabela.
Dessa tabela faço validações necessárias e daí gravo os dados validados na tabela definitiva.
No seu caso imagino que irá comparar os dados brutos com a tabela de CPF da receita federal.
kelvis
#9
Fala Davi blz?
Nem colocou a solução do Tópico né cara?! rss
acabo de me deparar com esta situação, lembra-se da solução que adotou?
Abraço
[quote=kelvis]Fala Davi blz?
Nem colocou a solução do Tópico né cara?! rss
acabo de me deparar com esta situação, lembra-se da solução que adotou?
Abraço[/quote]
Qual é seu caso exatamente? Poste o SQL para sabermos alternativas para o mesmo.