Pegar header, detail e trailler em um arquivo texto

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
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Tenho algo assim(removi nomes e endereço para preservar identidades), mas com SUBSTR(), dá para pegar. Veja o trecho abaixo

Selecionar tudo

0000000117.03.20200000000  -- HEADER
10000002CDC000010857360833F0002083280NEIDE  --DETAIL
10000003CDC000060391545434F0002425629EDIMILSON  --DETAIL
10000004CDC033453622000124J0004537521SENIC  --DETAIL
10000005CDC000020253186854F0006323715ANTONIO  --DETAIL
10000006CDC000040749649615F0006479090NADIA  --DETAIL
10000007CDC000000755400291F0007058977CLAUDEMIRO --DETAIL
10000008CDC000013891839391F0007157649EDVALDO  --DETAIL
9000000900000090000000000000  --TRAILLER
Tenho 3 procedures. Uma guarda o Header a outra o Detail e outra o Trailler. Como eu faço para pegar essas informações? Não é a montagem em si da rotina, pois uso UTL_FILE e etc. É como a proc do header sabe que o header é a primeira linha(essa á mais fácil) e depois vem a proc do detail, que tem várias linhas, qual critério para saber até onde vai o detail e idem para a proc do trailler. Sei que muito dirão, porque fazer 3 procs, foi assim na especificação que recebi e não tenho como mudar isso. Detail, ok é um loop, ms como saber o final. Só peço uma dica/orientação a respeito.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Essa informação de COMO identificar onde começa e onde termina os DETAIL deve estar na especificação.
Eu acredito que seja o primeiro caracter de cada linha. (Se é 1, é DETAIL. Se é 9 é TRAILER).

Ninguém vai conseguir te dizer com certeza isso.
pnet1
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 23 Jan 2020 9:12 pm

Putz!! Tão óbvio e nem percebi isso. Vlw!!!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Isso. E ZERO parece ser o Header.
Responder
  • Informação
  • Quem está online

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