这是一个时间敏感/紧急问题。我有一些R代码涉及使用RODBC包的许多SQL查询。这段代码每天早上在专用的Linux服务器上运行 - 它会下载一些数据,执行一些统计,然后将数据插回到MSSQL DB中。
今天,我们的sysarch已升级到Ubuntu 12.04.1,从那时起,我遇到了一堆ODBC问题。在做了一些更改之后,我们得到了它以便建立ODBC连接,但现在有一个更大的问题。基本上,每次执行CREATE或DROP命令时,我都会收到来自RODBC的错误消息,即使已创建/删除已标识的表。示例(bts.connect
是odbcConnect([connection information])
)的结果:
> sqlQuery(bts.connect, "SELECT OBJECT_ID('tempdb.dbo.#tempscores')")
1 1050250967
所以#tempscores表存在
> sqlQuery(bts.connect, "DROP TABLE #tempscores")
[1] "[RODBC] ERROR: Could not SQLExecDirect 'DROP TABLE #tempscores'"
即使它存在,我们也“不能”放弃它
> sqlQuery(bts.connect, "SELECT OBJECT_ID('tempdb.dbo.#tempscores')")
1 NA
但我们放弃了它。
> sqlQuery(bts.connect, "CREATE TABLE #tempscores (dummy int)")
[1] "[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE #tempscores (dummy int)'"
我们也无法创建它,但它存在,我们可以从它中选择:
sqlQuery(bts.connect,“SELECT OBJECT_ID('tempdb.dbo。#tempscores')”) 1 1066251024 sqlQuery(bts.connect,“SELECT * FROM #tescscores”) [1]假 < 0行> (或0长度的row.names)
我很有智慧,我真的需要这个明天早上为客户成功运行。有人知道可能导致这种奇怪行为的原因吗?