Postgres 在所有字段的开头和结尾添加一个空格

Joh*_*Cox 0 postgresql psql

SLES 12 SP3
Postgres 10.8

我复制了一个表以从 DB2 实例迁移数据。这些字段都是 CHAR、VARCHAR 或 TIMESTAMP 类型。我最初尝试使用 \COPY 从管道分隔文件中提取数据。但是,它在所有字段的开头和结尾放置了一个空格,即使这导致字段比定义的长度长。我在网上发现了一个说法,这是 \COPY 的一个已知问题。此时,我删除了该表,使用 sed 和其他一些工具将管道分隔数据转换为 SQL INSERT 语句。我再次在每个字段中都有一个前导和尾随空格。

有很多专栏,但作为我的示例如下:

FLD1  CHAR(6) PRIMARY KEY
FLD2  VARCHAR(8)
FLD3  TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

我使用的是 INSERT 的缩写形式。

INSERT INTO my_table VALUES
('123456', '12345678', '2021-01-01 12:34:56');
Run Code Online (Sandbox Code Playgroud)

但是当我执行 SELECT 时,我得到(注意前导空格和尾随空格):

 123456 | 12345678 | 2021-01-01 12:34:56 |
Run Code Online (Sandbox Code Playgroud)

我想指出的是,前两个字段现在比它们定义的 2 个字符长。

有人知道我该如何解决这个问题吗?

Joh*_*Cox 6

psql 的 -A 参数给了我想要的结果。