2017-03-13 17 views
1

R data.frameをNetezzaテーブルに書き込もうとしています。それはおよそ55Kの行を持って、私は、Java用のメモリ制限(オプション(java.parameters = "-Xmx4096m"))R JDBCエラー「挿入するJDBC結果セットを取得できません」

クエリとして4ギガバイトを設定している:

insert into MY_TABLE_NAME select * from external 'csv_file_containing_data_frame.csv' using (delim ',' remotesource 'jdbc'); 

SQLの上の行作品 DbVisualizerのようなツールから実行すると問題はありませんが、RStudioから実行しようとすると次のエラーが発生します。

Rコード:

driver <- JDBC(driverClass="org.netezza.Driver", classPath = "drivers//nzjdbc.jar", "'") 

connWrite <- dbConnect(driver, "jdbc:netezza://DB_SERVER:1234//DB_NAME", username, password) 

str_insert_query <- paste(
    "insert into MY_TABLE select * from external '", OutputFile , "' using (delim ',' remotesource 'jdbc');", sep = "" 

dbSendQuery(connWrite, str_insert_query[1]) 

dbDisconnect(connWrite) 

エラーメッセージ:

Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ", : 
    Unable to retrieve JDBC result set for insert into MY_TABLE select * from external 'C:/.../csv_file_containing_data_frame.csv' using (delim ',' remotesource 'jdbc'); (netezza.bad.query.result) 
  • dbWriteTableは動作しますが、それは使用できないほど遅いです。
  • dbSendQuery()の結果を変数に代入しようとしましたが、 は機能しませんでした。

ご協力いただきますようお願い申し上げます。ありがとうございました!

答えて

0

dbSendUpdateが必要です。

dbSendUpdate(connWrite, str_insert_query[1]) 
関連する問題