Arquivo txt com quebras de linhas

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 11 Set 2019 4:16 pm

Prezados, boa tarde!

Tenho uma package desenvolvida em ambiente de homologação para geração de arquivo txt posicional, o arquivo é gerado praticamente sem erros quanto à sua estrutura, porém há 01 registro que na posição de x a y deveria ficar na mesma linha, mas acaba ocorrendo uma quebra desta string nas próximas linhas conforme o exemplo abaixo:

Exemplo válido:
xxxxxxx xxxxxxxxyyyyyyzzzzzz
Exemplo inválido:
xxxxxxx xxxxxxxx
yyyyyy
zzzzzz

Há alguma função para tratar esse tipo de situação acima? Lembrando que o conteúdo está dentro do tamanho definido para o campo.
cristhianlor
Localização: SP

Mensagemem Qua, 11 Set 2019 4:42 pm

cristhianlor escreveu:Prezados, boa tarde!

Tenho uma package desenvolvida em ambiente de homologação para geração de arquivo txt posicional, o arquivo é gerado praticamente sem erros quanto à sua estrutura, porém há 01 registro que na posição de x a y deveria ficar na mesma linha, mas acaba ocorrendo uma quebra desta string nas próximas linhas conforme o exemplo abaixo:

Exemplo válido:
xxxxxxx xxxxxxxxyyyyyyzzzzzz
Exemplo inválido:
xxxxxxx xxxxxxxx
yyyyyy
zzzzzz

Há alguma função para tratar esse tipo de situação acima? Lembrando que o conteúdo está dentro do tamanho definido para o campo.


Oracle 11g
Win 10 Pro
cristhianlor
Localização: SP

Mensagemem Qui, 12 Set 2019 11:02 am

cristhianlor escreveu:
cristhianlor escreveu:Prezados, boa tarde!

Tenho uma package desenvolvida em ambiente de homologação para geração de arquivo txt posicional, o arquivo é gerado praticamente sem erros quanto à sua estrutura, porém há 01 registro que na posição de x a y deveria ficar na mesma linha, mas acaba ocorrendo uma quebra desta string nas próximas linhas conforme o exemplo abaixo:

Exemplo válido:
xxxxxxx xxxxxxxxyyyyyyzzzzzz
Exemplo inválido:
xxxxxxx xxxxxxxx
yyyyyy
zzzzzz

Há alguma função para tratar esse tipo de situação acima? Lembrando que o conteúdo está dentro do tamanho definido para o campo.


Oracle 11g
Win 10 Pro


Explicando melhor o caso acima, é retirar o enter de um registro com strings.
cristhianlor
Localização: SP

Mensagemem Qui, 12 Set 2019 12:33 pm

Dá pra usar REPLACE pra transformar o CHAR(10) em um espaço ou mesmo em nada...
Veja um exemplo:

Código: Selecionar todos
SQL> set serveroutput on
SQL>
SQL> declare
  2    v varchar2(100) :='xxxxxx
  3  yyyyyyy';
  4  begin
  5    dbms_output.put_line('Variavel inicial COM quebra de linha:');
  6    dbms_output.put_line( v );
  7    dbms_output.put_line('Agora transformamos o ENTER em um espaco');
  8    dbms_output.put_line( replace(v,chr(10),' ') );
  9  end;
10  /

Variavel inicial COM quebra de linha:
xxxxxx
yyyyyyy
Agora transformamos o ENTER em um espaco
xxxxxx yyyyyyy

PL/SQL procedure successfully completed

dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Qui, 12 Set 2019 1:10 pm

Dr_Gori, tudo bem? Muito obrigado pela ajuda, mas tenho uma dúvida quanto ao uso da função CHR, esse 10 que vai como argumento da função, é referente ao tamanho da string ou não?
cristhianlor
Localização: SP

Mensagemem Qui, 12 Set 2019 1:39 pm

cristhianlor escreveu:Dr_Gori, tudo bem? Muito obrigado pela ajuda, mas tenho uma dúvida quanto ao uso da função CHR, esse 10 que vai como argumento da função, é referente ao tamanho da string ou não?


Dr. Gori...

Já vi aqui do que se trata o argumento!
cristhianlor
Localização: SP

Mensagemem Qui, 12 Set 2019 2:45 pm

As vezes tem um CHR(13) junto. O 10 e o 13.
Então tem que dar uma olhada se apenas o 10 vai resolver!
:-o
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Qui, 12 Set 2019 3:52 pm

Dr. Gori,

Funcionou!!!

Muito obrigado.
cristhianlor
Localização: SP

Mensagemem Qui, 12 Set 2019 3:55 pm

dr_gori escreveu:As vezes tem um CHR(13) junto. O 10 e o 13.
Então tem que dar uma olhada se apenas o 10 vai resolver!
:-o


Utilizei somente o 10 e foi de boa.
cristhianlor
Localização: SP

Mensagemem Sex, 13 Set 2019 11:49 am

Por prudência é melhor deixar logo os dois. Para não ter que alterar mesmo código no futuro.
Já que é um caractere indesejado mesmo, retira logo.
DanielNN
Localização: Fortaleza - CE

att,

Daniel N.N.



Voltar para PL/SQL

Quem está online

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