Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Como importar arquivo TXT de Largura Fixa(Registro fixo)?

Prezados,

preciso importar arquivo txt com campos definidos por largura fixa. Ou seja, cada campo da tabela é definido pelo posicionamento do dado no txt, cada range significa um campo. Sendo que no txt tem duas formas distintas de registro, melhor três, e sao identificados pelos dois primeiro s caracteres do txt(posição 1 e 2, sao eles: "01" = cabeçalho; "02"=produção consolidada; "03"=produçao individualizada.

Na extração tive que separar o que é consolidado e individualizado, tendo em vista que eles estao no mesmo arquivo e não utilizam o mesmo padrão de posicionamento.

Minha missao agora é juntar tudo na mesma tabela. Sabemos que a TBL_BPAI contém todos os campos da TBL_BPAC. Fiz o Join, mas multiplicou TBL_BPAC x TBL_BPAI. Eu apenas quero juntar sem multiplicar.

Alguém pode me ajudar?

Consegui extrair e ficou assim:

  1. //extrair Consolidado
  2. TBL_BPAC:
  3. LOAD [@1:2] as prd_ident,
  4.    [@3:9] as prd_cnes,
  5.    [@10:15] as prd_cmp,
  6.    [@16:21] as prd_cbo,
  7.    [@22:24] as prd_flh,
  8.    [@25:26] as prd_seq,
  9.    [@27:36] as prd_pa,
  10.    [@37:39] as prd_idade,
  11.    [@40:45] as prd_qtd,
  12.    [@46:48] as prd_org
  13. FROM
  14. [D:\PAxxxx.ABR]
  15. (fix, codepage is 1252, no labels, header is 1 lines)
  16. WHERE([@1:2] = '02');
  17. //extrair Individualizado
  18. TBL_BPAI:
  19. LOAD [@1:2] as prd_ident,
  20.    [@3:9] as prd_cnes,
  21.    [@10:15] as prd_cmp,
  22.    [@16:30] as prd_cnsmed,
  23.    [@31:36] as prd_cbo,
  24.    [@37:44] as prd_dtaten,
  25.    [@45:47] as prd_flh,
  26.    [@48:49] as prd_seq,
  27.    [@50:59] as prd_pa,
  28.    [@60:74] as prd_cnspac,
  29.    [@75:75] as prd_sexo,
  30.    [@76:81] as prd_ibge,
  31.    [@82:85] as prd_cid,
  32.    [@86:88] as prd_idade,
  33.    [@89:94] as prd_qtd,
  34.    [@95:96] as prd_caten,
  35.    [@97:109] as prd_naut,
  36.    [@110:112] as prd_org,
  37.    [@113:142] as prd_nmpac,
  38.    [@143:150] as prd_dtnasc,
  39.    [@151:152] as prd_raca,
  40.    [@153:156] as prd_etnia,
  41.    [@157:159] as prd_nac,
  42.    [@160:162] as prd_srv,
  43.    [@163:165] as prd_clf,
  44.    [@166:173] as prd_equipe_Seq,
  45.    [@174:177] as prd_equipe_Area,
  46.    [@178:191] as prd_cnpj,
  47.    [@192:199] as prd_cep_pcnte,
  48.    [@200:202] as prd_lograd_pcnte,
  49.    [@203:232] as prd_end_pcnte,
  50.    [@233:242] as prd_compl_pcnte,
  51.    [@243:247] as prd_num_pcnte,
  52.    [@248:277] as prd_bairro_pcnte,
  53.    [@278:288] as prd_ddtel_pcnte,
  54.    [@289:328] as prd_email_pcnte,
  55.    [@329:338] as prd_ine,
  56.    [@339:340] as prd_fim
  57. FROM
  58. [D:\PAxxxxx.ABR]
  59. (fix, codepage is 1252, no labels, header is 1 lines)
  60. WHERE([@1:2] = '03');
1 Reply
makoprovski
Partner - Contributor II
Partner - Contributor II

João Filipe,

Um dos problemas é isto:

2018-05-08_21h43_01.png

Estes dois campos são diferentes então resulta no que você comentou. Você ler prd_ident e logo em seguida dar um drop. Acho que isto já resolveria o seu problema.