【问题标题】:Postgresql copying data into a tablePostgresql 将数据复制到表中
【发布时间】:2012-02-05 07:33:03
【问题描述】:

我在 Postgresql 中使用复制命令,我在一个以制表符分隔的文本文件中有一行数据,我想将其复制到 db 表中。

我收到一条错误消息: 错误:编码“UTF8”的字节序列无效:0x00 SQL状态:22021 上下文:COPY real_acct1,第 113038 行

所以我从文本文件中转到第 113038 行,并将其与 4 或 5 行相邻的行一起复制到一个新的文本文件中,然后看到新的数据进入了。

有什么有用的想法吗?这是宗地数据属性信息。

【问题讨论】:

  • 文件的编码是什么?什么 PostgreSQL 版本?
  • @underdark 谢谢。我已经遇到过编码问题,并且我已经使用 python 预处理了文本文件以处理这些编码。但这似乎与您指出的链接不同,因为如果我得到引发错误的一行并将其放入另一个文本文件中,那么 postgressql 加载正常。
  • @filiprem 我不确定。请参阅我对暗黑的评论。我遇到了西班牙语 n 重音和一些奇怪的
  • 由于这个问题与 GIS 没有直接关系,我想你会直接在 stackoverflow 上找到更好的受众。我会把你的问题转移到那里。
  • 错误信息说这一行有一个 NUL 字节。如果您将其复制到另一个文件中并保存,则编辑器很有可能过滤掉 NUL 字节。很多文本编辑器都会这样做(例如 Windows 记事本)。

标签: postgresql


【解决方案1】:

您的问题实际上是字符编码之一。

解决这个问题的最简单方法是通过 iconv 运行您的导入数据(假设您在 unix 机器上)。

iconv -f original_charset -t utf-8 originalfile > newfile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多