Em 17/03/12, Roney Fraga Soouza<roneyfr...@gmail.com> escreveu: > Olá a todos! > > Estou tentando importar alguns arquivos .csv para o PostgreSQL usando o > comando COPY, contudo não estou tendo sucesso em arquivos que tenham a > separação decimal marcada por vírgula [,]. Existe alguma condição do > comando COPY que seja possível informar que as casas decimais são > separadas por vírgula [,] e não por ponto [.]. > > Considerando que utilizo o Ubuntu 11.10, PostgreSQL 9 e pgAdmin III. > Segue exemplo, para um pequeno conjunto de dados: > > /usr/share/p3.csv > > v101;v10;v3 > 11001901;21;1 > 11001901; ;2 > 11001901;11;1 > 11001901;1;9,8 > > utilizei os comandos > > CREATE TABLE p3 > ( > col1 numeric, > col2 numeric, > col3 numeric > ) > > COPY p3 FROM '/usr/share/p3.csv' WITH DELIMITER ';' CSV HEADER NULL ' ' > > O comando COPY vai dar erro, que é solucionado se substituir a virgula > do último número [9,8] por [9.9]. Contudo não posso fazer isso em todos > os arquivos .csv, pois, alguns de 3.7 GB. > > Vale considerar que não sou da área de computação, logo, implementar > algum código para substituir as virgulas por ponto nos arquivos .csv > seria uma alternativa talvez complicada, visto que a única linguagem de > programação que conhece é R, que não lê esse arquivo de 3.7 GB em minha > máquina. >
Use o sed: sed s/','/'.'/ /usr/share/p3.csv > /usr/share/p3a.csv Osvaldo _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral