database - 在 PostgreSQL 数据库中复制 NULL

标签 database postgresql

我正在尝试将 CSV 文件复制到 Postgres 9.5.3 并遇到 NULL 问题。文件是用ASCII编码的,我的client_encoding是UTF-8,server编码是UTF-8。 空值位于带引号的字符串中,如下所示。

enter image description here

我收到这个错误

ERROR:  invalid byte sequence for encoding "UTF8": 0x00
CONTEXT:  COPY test_null, line 1
********** Error **********

ERROR: invalid byte sequence for encoding "UTF8": 0x00
SQL state: 22021
Context: COPY test_null, line 1

我的表结构是

CREATE TABLE TEST_NULL(NULLCOLUMN CHAR(10));

copy TEST_NULL from 'F:\User Area\DCS.TXT' csv  NULL AS 'null';

我已经尝试通过指定“\”来转义它,并尝试了 Copy 命令的其他选项,但似乎没有任何效果。不确定,如何处理。

最佳答案

您的文件包含被 PostgreSQL 拒绝的 ASCII 0 字符。

如果您想使用 COPY 将 NULL 值加载到数据库中,则必须使用其他一些表示形式。

关于database - 在 PostgreSQL 数据库中复制 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285478/

相关文章:

sql - 使用 WHERE、AND 和 ILIKE 查询

Android - 当我们选择复选框时,Spinner 需要改变

sql - PostgreSQL:用于获取将特定列作为外键的所有表的列表的 SQL 脚本

MySQL - 如何在两个 hasMany 关联的查询中获取 hasMany 关联的不同行的总和?

MySQL 使用 PostgreSQL COPY FROM 命令加载数据 INFILE

postgresql - postgres 分区表上的索引行为(创建和删除)

mysql - SQl 数据库备份显示错误 "Exception of type "System.OutofMemoryException“被抛出。(mscorlib)”

mysql - 数据库合并表

database - 如何在 Postgresql 中找到包含主键或单个表的特定列的所有数据库表

php - 如何在 postgres 中使用 pgcrypto 来散列密码