2017-03-22 12 views
1

私はテーブルにcsvファイルのバッチをコピーしています。それぞれが8M以上の行、〜900MBです。最初の12個のファイルは正常にコピーされますが、次の1個はエラーが発生します。この「プログラム限界」とどのように私はそれを変更しないで何Postgres SQLの状態:テーブルにデータをコピーするときの54000

54000 program_limit_exceeded 

:Googleからの

のみ該当結果は公式ドキュメントからかなり役に立たないラインのですか?

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

アイデアは、ファイル内に発生しないシンボル(この場合@)を求めるとセパレータように、すべての行が単一の列として読み取られることが使用されます。次に、行ごとの引用符数を数え、奇数の引用符を持つすべての行番号を出力します。その後、必要な修正を適用することができます。

関連する問題