我正试图使用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命令(dbExecute
、dbGetQuery
、dbSentQuery
(,但它们都抛出了相同的错误。(事实上,我希望他们都能——dbSendStatement
是手册中应该能工作的。(
是否有其他方法可以使用DBI
、dbplyr
等创建视图。?还是我这样做是对的,这是RJDBC
或驱动程序的限制?
RJDBC早于最新的DBI规范,并使用不同的函数来访问此功能:RJDBC::dbSendUpdate(con, query)
。
DBI的dbSendStatement()
在这里还不起作用。为了获得最佳兼容性,RJDBC可以实现此方法并将其转发给其dbSendUpdate()
。