【发布时间】:2016-09-04 05:13:24
【问题描述】:
我知道我可以在 SQL 中从 R 创建一个临时表,例如:
require(RODBC)
X<- odbcDriverConnect('driver={SQL Server};
server=s001000;database=X1;trusted_connection=true')
sqlQuery(X, "create table #temptable (test int)" )
sqlQuery(X, "insert into #temptable(test) values(201508)")
doesItWork <- sqlQuery(X, "select * from #temptable")
但是我想从一个 R 对象在 sql server 中创建一个临时表(我有一个具有先前 R 计算结果的表,我需要针对 SQL 中的另一个表查询它。我不想将其导出为 txt 并将其上传到 SQL 服务器。它必须是从 R 中执行此操作的一种方式。我尝试过:
tabla<-data.frame(per=c(201508,201510))
sqlQuery(X, "Select * into ##temporal from tabla")
但我收到一条错误消息:
"42S02 208 [Microsoft][ODBC SQL Server 驱动程序][SQL Server]无效 对象名称'tabla'。” “[RODBC] 错误:无法 SQLExecDirect 'Select * into ##temporal from tabla'"
我也知道我可以用 sqlSave 创建一个表:
sqlSave(X, tabla, rownames=FALSE,safer=FALSE)
但我想创建一个临时表。 如何从 R 对象在 SQL 中创建临时表?
【问题讨论】:
-
我不认为您可以通过
sqlQuery在查询中引用 R 会话 (tabla) 中的对象,例如,sqldf。尝试使用sqlSave或sqlUpdate进行插入操作。
标签: sql sql-server r rodbc