2017-03-13 13 views
1

R data.frame을 Netezza 테이블에 쓰려고합니다. 그것은 약 55K 행이 나는 자바에 대한 메모리 제한 (옵션 (java.parameters = "-Xmx4096m"))R JDBC 오류 "삽입 할 JDBC 결과 세트를 검색 할 수 없습니다 ..."

쿼리로 4GB의 설정 :

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