【问题标题】:R JDBC error "Unable to retrieve JDBC result set for insert into ..."R JDBC 错误“无法检索 JDBC 结果集以插入...”
【发布时间】:2017-08-03 14:45:38
【问题描述】:

我正在尝试将 R data.frame 写入 Netezza 表。它有大约 55K 行,我设置了 4GB 作为 Java 的内存限制(options(java.parameters = "-Xmx4096m"))

查询:

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

当我从 DbVisualizer 之类的工具运行时,上面的 SQL 工作行没有任何问题,但是当我尝试从 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() 的结果分配给一个变量,但它 没用。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: r netezza rjdbc


    【解决方案1】:

    需要使用dbSendUpdate。

    dbSendUpdate(connWrite, str_insert_query[1])
    

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 2021-12-28
      • 2014-01-14
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      相关资源
      最近更新 更多