PostgreSQL-错误:缺少列“的数据”;";SQL状态:22P04

PostgreSQL-错误:缺少列“的数据”;";SQL状态:22P04,sql,postgresql,Sql,Postgresql,我试图将TXT文件导入postgreSQL数据库表,但出现错误: 错误: “bts\U名称”列缺少数据 SQL状态:22P04 我的代码是: COPY indicadores2g ( Daily, BTS_NAME, SITE_CODE ) FROM 'C:\Users\Public\Documents\GEO_2G_CELL.txt' WITH CSV HEADER DELIMITER ' ' NULL AS '' ; 我知道问题出在txt文件中。在txt文件中,最后两行是空的

我试图将TXT文件导入postgreSQL数据库表,但出现错误:

错误:

“bts\U名称”列缺少数据 SQL状态:22P04

我的代码是:

COPY indicadores2g (
  Daily,
  BTS_NAME,
  SITE_CODE
)
FROM 'C:\Users\Public\Documents\GEO_2G_CELL.txt' 
WITH CSV HEADER DELIMITER ' ' NULL AS '' ;
我知道问题出在txt文件中。在txt文件中,最后两行是空的(示例),当我删除它们时,SQL运行没有问题。 我的问题是我需要每天进口。在我的SQL代码中是否有任何规则可以让它顺利运行

另一种无问题运行的方法是:在excel中打开TXT并另存为CSV。我可以自动执行此操作吗?

创建简单批处理(例如
infixer.bat
):

然后

当然,
infixer.bat
应该通过
PATH
提供


免责声明:在葡萄酒上测试。

我假设Indicatores2G是一个已经存在的表,其bts_名称上有一个NOTNULL。。相反,您可以将数据复制到一个临时表中,而不限制加载的数据,然后使用插入选择并排除空值。然后放下临时桌子。或者更改表以允许null,然后在insert之后删除这些记录,然后再次激活not null值。我更喜欢临时表,因为它不需要更改现有的表结构。
@echo off
for /f "delims=" %%a in (%1) do (
  echo %%a
)
COPY indicadores2g (
  Daily,
  BTS_NAME,
  SITE_CODE
)
FROM PROGRAM 'inpfixer.bat C:\Users\Public\Documents\GEO_2G_CELL.txt' 
WITH CSV HEADER DELIMITER ' ' NULL AS '' ;