Postgres SQL 状态:将数据复制到 table 时为 54000
Postgres SQL state: 54000 when copying data to table
我正在将一批 csv 文件复制到 table,每个文件都超过 800 万行,约 900MB。前十二个文件复制得很好,但下一个文件给我这个错误。
Google 的唯一相关结果是来自官方文档的一行相当无用的内容:
54000 program_limit_exceeded
这是什么"program limit",我该如何更改它?
由于另一个大文件缺少引号,我再次遇到此错误。在这里发布我的解决方案以防它对任何人有帮助,尽管我假设有更多的一般情况可能导致此错误。
在 R 中:
library(data.table)
library(stringi)
df<-fread("datafile.csv", sep = "@")
names(df) <- "col1"
df[,count:=stri_count(col1, fixed = '"')]
which(df$count%%2!=0)
我们的想法是找到一个从未在您的文件中出现的符号(在本例中为 @
)并将其用作分隔符,以便将每一行都作为一个列读取。然后计算每行的引号数并打印所有具有奇数引号的行号。然后您可以应用任何需要的修复。
我正在将一批 csv 文件复制到 table,每个文件都超过 800 万行,约 900MB。前十二个文件复制得很好,但下一个文件给我这个错误。
Google 的唯一相关结果是来自官方文档的一行相当无用的内容:
54000 program_limit_exceeded
这是什么"program limit",我该如何更改它?
由于另一个大文件缺少引号,我再次遇到此错误。在这里发布我的解决方案以防它对任何人有帮助,尽管我假设有更多的一般情况可能导致此错误。
在 R 中:
library(data.table)
library(stringi)
df<-fread("datafile.csv", sep = "@")
names(df) <- "col1"
df[,count:=stri_count(col1, fixed = '"')]
which(df$count%%2!=0)
我们的想法是找到一个从未在您的文件中出现的符号(在本例中为 @
)并将其用作分隔符,以便将每一行都作为一个列读取。然后计算每行的引号数并打印所有具有奇数引号的行号。然后您可以应用任何需要的修复。