首页 > 解决方案 > 从 RODBCext 移植到 odbc 和 DBI 的问题

问题描述

自从升级到最新版本的 RI 后,RODBCext 已被归档。这很糟糕,因为这是将我的结果推送到我的数据库的基石。

RODBCext 非常好,例如我可以这样做:

conName <- RODBC-connection
conname_new <- DBI/odbc-connection
tbl <- "MySchema.Table1"
nobsQ <- "?,?,?"

dt <- data.table(Col1 = c(1,2,3),
                 Col2 = c("T", "R", "S"),
                 Col3 = c("Blah", "Gah", "Rah"))

sqlExecute(conName, paste0("INSERT INTO ",tbl, " VALUES (", nobsQ, ")"), dt)

虽然我知道在 odbc 和 DBI 中我必须遍历我的 data.tables,将 data.table 中的每一行都放入一个列表(列到行)。这听起来比我目前的解决方案更糟糕。按原样传递数据表的能力非常有吸引力。我宁愿不要用一堆 for 循环来代替它。

所以我的问题是,我可以将上面的 sqlExecute-snippet 移植到 DBI/odbc 语法而不必使用 for 循环吗?

标签: rodbcdbirodbc

解决方案


推荐阅读