导入Postgres数字类型的CSV文件

问题描述

| 我需要将文件导入到我的Postgres数据库中并得到以下错误:   Fabrica中的整数\“ 1 \”的输入语法无效;   sql状态:22P02 我的命令是:
copy trazabilidade(fabrica,--integer
                    idChapa,--integer
                    descricao,--varchar
                    espessura,--double precision
                    comprimento,--double precision
                    largura,--double precision
                    peso) from \'C:/temp_nexo/traz.csv\' delimiter \';\';
如何从具有数字的csv文件类型中导入数据?     

解决方法

        http://wiki.postgresql.org/wiki/COPY   不能扩展Pg强制      数据加载机制依赖于数据是Pg数据类型的形式表示,或由Pg强制(例如可强制转换)的形式表示。但是,目前尚没有一种为Pg类型添加自定义强制的方法。例如,您不能通过将强制重写为Int来使\ '31,337 \':: int起作用。 它还提出了两种选择,即pgloader。   与内置COPY相比,pgloader以更灵活的格式更好地加载容易出错的数据。与内置的COPY相比,缺点是安装复杂度更高(Python + psycopg +配置),并且有时会造成明显的速度损失。     ,        根据Denis对COPY命令的答复,您不能在postgres复制命令中添加自定义强制。如果pgloader过大,则可以将数据加载到临时表中,然后从那里检查,然后强制转换/修剪/操作您认为应该有效的任何数据。