R Ошибка JDBC Невозможно получить набор результатов JDBC для вставки в

Я пытаюсь записать R data.frame в таблицу Netezza. В нем около 55K строк, и я установил 4 ГБ в качестве ограничения памяти для Java (options (java.parameters = "-Xmx4096m"))

Запрос:

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 () переменной, но это не сработало.

Любая помощь будет оценена. Спасибо!


person KalC    schedule 13.03.2017    source источник


Ответы (1)


Необходимо использовать dbSendUpdate.

dbSendUpdate(connWrite, str_insert_query[1])
person KalC    schedule 13.03.2017