Bom, vc FOI na página que indiquei e viu que o caracter de LF (que é o que o 
Linux/Unix usa para indicar quebra de linha) equivale a 10, certo ?? Então ** 
VEJA ** no dump que tem SIM chr(10) ás pampas aí, okdoc ? Com certeza foi erro 
teu quando vc disse no início da thread que "não achou".... 
 Muito bem : no caso, veja que vc nçao tem sequências longas de espaço 
(espaço=chr(32)) para fazer pular linhas, então como eu disse com certeza o que 
vc tem é combinação de quebra de página, ie, uma quebra logo depois de outra, 
confirme isso vendo no DUMP se realmente os pulos de linha equivalem aos locais 
onde aparecem dosi caracteres de código "10" juntos.... Sendo isso, é 
Exatamente o que eu disse, replace apenas, exemplo :

SYSTEM@xyz#1:SQL>create table T(c1 varchar2(200));

Table created.

SYSTEM@xyz#1:SQL>insert into T values ('Linha1' || chr(10) || 'Linha2' || 
chr(10) || chr(10) || 'Linha 3' || chr(10));

1 row created.

SYSTEM@xyz#1:SQL>commit;

Commit complete.

=> veja aí embaixo a linha sendo pulada pela junção de dois caracters ascii 
código 10 :

SYSTEM@xyz#1:SQL>select * from T;

C1
---------------------------------------------------------------------------------------------------------------------------------
Linha1
Linha2

Linha 3


SYSTEM@xyz#1:SQL>select dump(c1) from T;

DUMP(C1)
---------------------------------------------------------------------------------------------------------------------------------
Typ=1 Len=23: 
76,105,110,104,97,49,10,76,105,110,104,97,50,10,10,76,105,110,104,97,32,51,10

==> Viu no DUMP ??? pelo que vejo é EXATAMENTE esse teu caso, um simples 
REPLACE resolve :

SYSTEM@xyz#1:SQL>update T set c1 = replace(c1, chr(10)||chr(10), chr(10));

1 row updated.

SYSTEM@xyz#1:SQL>commit;

Commit complete.

SYSTEM@xyz#1:SQL>select * from t;

C1
---------------------------------------------------------------------------------------------------------------------------------
Linha1
Linha2
Linha 3


SYSTEM@xyz#1:SQL>


 okdoc ????

 []s

  Chiappa

Responder a