procedure geração de arquivos (em branco)

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
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 317
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Tenho uma procedure que corre os dados de um cursor e gera arquivos texto com as movimentações dos clientes de determinado grupo e esses arquivos são separados de acordo com cada código de grupo diferente, exemplo:

Selecionar tudo

grupo A (arquivo grupo A)
xxx 0001
yyy 0002
zzz 0003

grupo B (arquivo grupo B)
xxx 0001
yyy 0002
zzz 0003
Após gerados, estes arquivos são enviados para o cliente. Até ai sem maiores "mistérios", porém em determinado período pode ocorrer que, para algum grupo não haja movimentações, portanto por "default", serão gerados apenas os arquivos que contém alguma movimentação. Acontece que estes arquivos que são enviados para o cliente, servem de controle interno para os mesmos e mesmo para os grupos que não tiverem movimentação eles querem que seja enviado um arquivo em branco. Eis ai minha dúvida, como é um único cursor para todos os grupos, como que vou fazer para identificar qual código do grupo não teve nenhuma movimentação e ainda gera um arquivo identificado com o código do grupo?

A solução que eu pensei foi a seguinte. Criar um novo cursor, ao contrário do que verifica as movimentações de cada grupo, este verificaria os grupo que não tiveram movimentação alguma. Talvez utilizar um UNION entre "com movimentação" e "sem movimentação" e gerar um arquivo texto em branco apenas com a estrutura do corpo do layout. Mas é que está parecendo tão obvio que não sei se esta seria a melhor solução. Também pensei em armazenar os códigos do grupo gerado em um array ou uma tabela temporária e depois verificar os códigos que não estão contidos neste conjunto, mas aí eu já não teria conhecimento técnico suficiente (até o momento) para fazer algo parecido, mas nada impede que eu tente!

Por isso colegas, gostaria de compartilhar esta dúvida com vocês, para que possam me ajudar a encontrar uma solução viável.

Grato.
SergioLBJr
Rank: Oracle Guru
Rank: Oracle Guru
Mensagens: 448
Registrado em: Ter, 16 Jun 2009 3:07 pm
Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

Cara posta o teu cursor ai.
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 317
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Caso resolvido amigo, obrigado pela atenção.

Criei um outro cursor dentro da mesma procedure, onde eu verifico todos os códigos de cada grupo existente e verifico os existente gerados nas movimentações do período, pegando esta diferença utilizando o MINUS.

At.,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes