所以我用这些列创建了这个表:
CREATE TABLE public.gps_0
(
nmea_sentence text,
utc_time integer,
latitude double precision,
lat_designator character varying(255),
longitude double precision,
long_designator character varying(255),
fix_quality integer,
num_satellites integer,
hdop integer,
altitude double precision,
alt_units character varying(255),
geoidal_separation double precision,
gs_units character varying(255),
blank integer,
checksum integer
)
这是我在导入文件之前所做的事情:
然后我点击IMPORT并收到此错误消息:
这对我来说毫无意义,因为我的代码有15列,我的数据有15列。我不知道为什么这个错误,任何帮助都会做。谢谢!
答案 0 :(得分:3)
这很可能与文件编码有关。
PostgreSQL的COPY
(这个导入工具可能使用的)假定的默认编码是UTF-8,而你的文件可能不是。如果它是在Windows上创建/编辑/保存的,则可能需要指定不同的编码。
您需要尝试确定文件的编码,但遗憾的是,这并非总是非常简单。有一些工具可以提供帮助,但不能保证能为您提供正确答案。
我在Python库cchardet
上取得了成功 - 当然这需要在Python中进行一些简单的编码。如果你知道一点Python,他们的GitHub页面就有一个很好的例子:https://github.com/PyYoshi/cChardet
或者,只需搜索一些Windows编码检测工具。
确定文件的编码后,您可以在导入工具或COPY
命令中指定它。该工具似乎有一个下拉,这可能会使它更容易;但是,您可以在此处引用PostgreSQL支持的内容:https://www.postgresql.org/docs/current/static/multibyte.html
我已成功使用此方法 - 希望它也能解决您的问题。