Baixei o seu arquivo p1.csv e analisei o que poderia ser feito. Bom a forma que é gerado, poderia ser mudado para o padrão que o Clipper e qualquer outro método seguro de importação por arquivo texto.
Para que você tenha uma idéia, refiz todo o cabeçalho desse arquivo .csv de forma que ficasse o nome de campo (irei espaços e mantive o tamanho) aà gerei em dbf. Vieram campos do tipo numérico, caracter e data. Perfeito.
Agora temos o dbf com os devidos dados, se bem que obtido através de planilha e manipulação manual para gerar o dbf. Certo que não é exatamente o que você quer. Mas se você fizer um gera.prg com:
use p3
copy to p3 delimited
Você vai obter o seguinte arquivo p3.txt com este conteúdo:
99999,9999999,"110 - Venda p/xxxxxx",99999999,"Pronto para Libera?’","XXXXXXXX DAS LTDA.","999999 : ROD BR-XXXXXSETOR: RODOVIARIO; : LOJAS XXXXX; : SUC ZXXZX;-XXXXXXXXXXX-999999990-BR",31253,"2.1","XXXXXXXTRAns-RodovXXXXXXOutras transporta",20120601,20120601,"XXXX MODAS LTDA.","",9100,"","","906817 : ROD XXXXXX-SETOR: RODOVIARIO; : LOJAS SUC XXX6; : XXXXXXX;-IMPERATRIZ-MA-999999990-BR","21224E","XXXXXXX NUDE 60X60 NAT","",1396,"m2","","01-XXXXXXXXXJE : BR 101 Km163--XTijucas-XXC-880999990-BR_","XX","","","","","099999999/0099-99..99999 - XXXXXXXA RODXXXXX NOVO.FSDF6D\SFGDFS1GDFG1GFD112.FOB."
Observe que o Clipper criou o arquivo com aspas duplas quando é campo do tipo caracter e cada campo está separado por "," (vÃrgula). Então é desse modo que você deveria pedir para os programadores em ORACLE para que gerem nesse formato:
DELIMITED Text File Format Specifications
────────────────────────────────────────────────────────────────────────
File Element Format
────────────────────────────────────────────────────────────────────────
Character fields Delimited, with trailing blanks truncated
Date fields yyyymmdd
Logical fields T or F
Memo fields Ignored
Numeric fields Leading zeros truncated
Field separator Comma
Record separator Carriage return/linefeed
End of file marker 1A hex or CHR(26)
────────────────────────────────────────────────────────────────────────
Depois você poderia ler o arquivo linha a linha, através de funções de baixo nÃvel (FOPEN/FREAD) e desdobrar cada campo em sequência separadas por "," e aspas.
Nota de Moderação:por
Pablo César: Dados re-editados para proteger informação do cliente.