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

Responder a