gpt4 book ai didi

sql - 将 .txt 文件加载到 Postgres 数据库中

转载 作者:行者123 更新时间:2023-12-04 04:18:57 27 4
gpt4 key购买 nike

我创建了一个新的 Postgresql 表,但无法将 .txt 文件加载到该表中。我从文本文件中剥离标题并尝试加载数据但出现此错误:

ERROR: extra data after last expected column CONTEXT: COPY crd_codes1, line 1: "01 00 000 Alabama 1" SQL state: 22P04

我在文本文件中包含了一个数据快照,以备不时之需。这是我在数据库中创建的空白表的代码:

CREATE TABLE CRD_codes1 
(state char(2),
crd char(2),
county char(3),
crd_name varchar(50),
history_flag char(1));

如有任何帮助,我们将不胜感激!

enter image description here

最佳答案

欢迎来到 Stack Overflow。

如果您的列是按制表符拆分的,试试这个:

COPY CRD_codes1 FROM '/home/jones/file.txt' CSV DELIMITER E'\t'
  • E'\t' 表示值被 TAB 分割

但如果您的分隔符设置不正确,如您的屏幕截图所示,您必须在插入表格之前清理这些数据。以下脚本将数据导入临时表,替换多余的制表符并填充目标表。

CREATE TEMPORARY TABLE t (c TEXT);
COPY t FROM '/home/jones/file.txt' CSV ESCAPE E'\t';

WITH j AS (
SELECT
string_to_array(
regexp_replace(c, '\t+', ',', 'g'),
',') AS val
FROM t
) INSERT INTO CRD_codes1
SELECT j.val[1],j.val[2],j.val[3],j.val[4],j.val[5] FROM j;

SELECT * FROM CRD_codes1;

state | crd | county | crd_name | history_flag
-------+-----+--------+-----------------------+--------------
01 | 10 | 077 | Lauderdale | 1
01 | 10 | 888 | D10 Combined Counties | 1
(2 Zeilen)

关于sql - 将 .txt 文件加载到 Postgres 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59905303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com