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 个字符长。
有人知道我该如何解决这个问题吗?