【问题标题】:import csv files on postgres numeric types在 postgres 数字类型上导入 csv 文件
【发布时间】:2011-06-11 17:14:38
【问题描述】:

我需要将文件导入我的 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 文件类型导入数据?

【问题讨论】:

    标签: postgresql csv import


    【解决方案1】:

    http://wiki.postgresql.org/wiki/COPY

    不能扩展 Pg 强制

    数据加载机制依赖于数据是 Pg 数据类型的正式表示,或 Pg 可强制(例如,cast'able)。但是,目前没有办法为 Pg 类型添加自定义强制。例如,您不能通过将强制覆盖为 Int 来使 '31,337'::int 工作。

    它还提出了两个替代方案,即pgloader

    pgloader 比内置的 COPY 更擅长以更灵活的格式加载容易出错的数据。缺点是额外的安装复杂性(Python+psycopg+配置)和与内置 COPY 相比有时会显着降低速度。

    【讨论】:

      【解决方案2】:

      根据 Denis 关于 COPY 命令的回复,您无法将自定义强制添加到 postgres 复制命令。如果 pgloader 太过分了,您可以将数据加载到临时表中,然后从那里检查,然后转换/修剪/操作您认为应该有效的任何数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-26
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        • 2022-01-27
        • 1970-01-01
        • 2016-06-06
        • 2012-06-21
        相关资源
        最近更新 更多