我的命令是
\copy meta.amz_payment1("Date", settlement_id, type, order_id, sku,
description, quantity, marketplace, fulfillment, order_city, order_state,
order_postal, product_sales, shipping_credits, promotional_rebates,
sales_tax_collected, selling_fees, fba_fees, other_transaction_fees,other, total)
from '/Users/manish/Downloads/amz.csv' delimiter ',' csv header
但它给出了以下错误:
ERROR: invalid input syntax for type numeric: "-8,791.41" CONTEXT: COPY amz_payment1, line 23, column total: "-8,791.41"
最佳答案
“总计”列的类型为 numeric
,但 CSV 文件具有该位置的格式化字符串。您应该将 varchar
列添加到您的 meta.amz_payment1
表并将信息复制到该列中。复制数据后,您可以使用 UPDATE
语句填充“total”列:
ALTER TABLE meta.amz_payment1 ADD COLUMN total_fmt varchar;
\copy meta.amz_payment1("Date", ... total_fmt) from ...;
UPDATE meta.amz_payment1 SET total = total_fmt::numeric;
然后
ALTER TABLE meta.amz_payment1 DROP COLUMN total_fmt;
关于postgresql - postgresql 中的复制命令出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30209420/