Postgresql - 从Excel文件填充数据库

时间:2013-02-17 19:11:38

标签: postgresql

我想从excel文件填充我的客户数据库,我正在使用\ copy命令但是我收到以下错误。有人可以帮我这个吗?

\copy customer from '/home/2008/uehtes/Desktop/Comp421/data.xlsx';
ERROR:  invalid byte sequence for encoding "UTF8": 0xde76
CONTEXT:  COPY customer, line 1

1 个答案:

答案 0 :(得分:4)

PostgreSQL的COPY命令和psql \copy包装器不能理解或支持Microsoft Office Excel(xls)或Microsoft Office XML电子表格({{1文件格式。

您必须将Excel文件另存为CSV并使用xlsx,或使用了解Microsoft Excel格式的ETL工具。到目前为止,保存为CSV将是最简单的方法。

Excel表格中的数据必须与您\copy ... CSV所使用的表格的PostgreSQL列定义兼容。例如,您无法将copy等值复制到ABC123列中。

如果您的Excel数据混乱,充满无效值,并且有问题,请考虑首先通过添加验证在Excel中清除它。或者,您可以将其导入integerTEMPORARY PostgreSQL表,其中问题列全部使用UNLOGGED数据类型定义,然后使用text命令插入已清除将数据输入决赛桌。最后一个选择是再次使用上述之一的ETL工具在加载和插入数据时清理数据。

您选择哪种方法取决于您是否更习惯使用SQL查询,使用ETL工具或使用Excel。