2017-03-22 58 views
1

我正在複製一批csv文件到一個表,每個> 8M行,〜900MB。第一個文件複製得很好,但下一個文件給了我那個錯誤。Postgres SQL狀態:54000當將數據複製到表

從谷歌的唯一相關的結果是從官方文檔相當無助線:

54000 program_limit_exceeded 

這是什麼「程序限制」,如何改變呢?

+1

你檢查了postgres日誌有沒有更有用的東西?確實,這個錯誤沒有太多的文檔.. –

+2

你可以自己加載有問題的文件,而無需首先加載其他文件? –

+0

啊,由於某種原因pgAdmin沒有給我完整的錯誤文本。它看起來似乎是文件的問題,顯然在某處丟失的雙引號將一半數據轉換爲單個值。謝謝。 – zipzapboing

回答

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) 

的想法是找到(在這種情況下@),從來沒有發生在你的文件中的符號並用其作爲分隔符所以每行被解讀爲一列。然後計算每行的引號數並打印所有具有奇數引號的行號。然後,您可以應用所需的任何修復。