2

我正在尝试将本地数据框从 R 复制到我的 db2 数据库。我有权写入表,并且我已验证连接正常。

我在用:

copy_to(connection, data.frame, name = my_table_name)

我收到以下错误,这对我来说没有意义。它说的对象不存在正是我要创建的对象。我究竟做错了什么?

typeof(x) 中的错误:找不到对象“my_table_name”

4

2 回答 2

5

默认情况下,copy_to()尝试创建一个临时表。一个选项是添加参数temporary = FALSE,以克服TEMPORARY令牌错误。一个更好的解决方案是针对您用来连接的odbc包,希望该包能够添加对 DB2 数据库的支持。换句话说,odbc将需要知道正确创建临时表所需的具体命令是什么。一旦解决了,copy_to()就可以了。如果它确实odbc是您正在使用的包,我建议您在包的存储库中打开一个 GitHub 问题。

于 2018-09-22T21:31:23.937 回答
0

这可能是由DBInot的问题引起的dbplyr。见这里。有一个利用DBI包的变通方法。您可以在此处获得更多详细信息。

总结: DBI 包有一个写表命令。它使用相同的连接,但它还要求输入表名包含在SQL().

我测试了以下内容,它按预期工作。

data(iris)
DBI::dbWriteTable(connection, SQL("database.schema.iris"), iris)
于 2019-06-12T23:07:53.643 回答