Postgres SQL状态:将数据复制到表时为54000

时间:2017-03-22 16:47:16

标签: sql postgresql limit

我正在将一批csv文件复制到一个表中,每个文件都是> 8M行,~900MB。第一个twelves文件复制得很好,但下一个文件给了我那个错误。

来自Google的唯一相关结果是来自官方文档的相当无益的一句话:

54000   program_limit_exceeded

这个“程序限制”是什么?如何更改?

1 个答案:

答案 0 :(得分:0)

由于另一个缺少引号的大文件,我再次收到此错误。在这里发布我的解决方案,以防它对任何人有帮助,但我认为有更多一般情况可能导致此错误。

在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)

我们的想法是找到一个永远不会出现在您的文件中的符号(在这种情况下为@),并将其用作分隔符,以便将每一行读取为单个列。然后计算每行的引号数并打印所有具有奇数引号的行号。然后,您可以应用所需的任何修复。