如何使用R DBI创建视图?

How to use R DBI to create a view?

我正在尝试使用 R 的 DBI 库在通过 JDBC 连接的 Athena 数据库上创建视图。 dbSentStatement命令,本应提交并执行任意SQL而不返回结果,当没有返回结果集时抛出错误:

DBI::dbSendStatement(athena_con, my_query)
Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set",  : 
  Unable to retrieve JDBC result set
  JDBC ERROR: [Simba][JDBC](11300) A ResultSet was expected but not generated from query <query repeated here>

此外,未创建视图。

我尝试过其他看起来很有希望的 DBI 命令(dbExecutedbGetQuerydbSentQuery),但它们都抛出相同的错误。 (事实上​​ ,我希望它们都可以 - dbSendStatement 是手册中应该起作用的那个。)

是否有其他方法可以使用 DBIdbplyr 等创建视图?还是我这样做是对的,它是 RJDBC 或驱动程序的限制?

RJDBC 早于更新的 DBI 规范并使用不同的函数来访问此功能:RJDBC::dbSendUpdate(con, query) .

DBI 的 dbSendStatement() 在这里还不能使用。为了获得最佳兼容性,RJDBC 可以实现此方法并将其转发给它的 dbSendUpdate() .

如果没有提供您查询的更多详细信息,我不能保证这会有所帮助:

但对于我来说:

nrow <- dbExecute(con, paste0("CREATE VIEW ExampleView AS",
                              "Random statements"))

将帮助您在后端创建视图。

区别:我使用的是 SQLite。