SQL Server 查询因 RODBC 连接而失败,在 SQL Server 中工作
Posted
技术标签:
【中文标题】SQL Server 查询因 RODBC 连接而失败,在 SQL Server 中工作【英文标题】:SQL Server query failed with RODBC connection, works in SQL Server 【发布时间】:2015-08-10 17:33:27 【问题描述】:您好,提前致谢。
我正在使用 R 包 RODBC
连接到 SQL Server 数据库并运行查询以删除表中的数据。当我运行其他查询(如 SELECT 语句等)时,查询运行良好,或者至少我得到一个详细的错误。下面的查询只是失败了”
bulk <- odbcConnect(dsn="DSN", uid = "UID", pwd = "PWD",case="nochange", colQuote=c(), tabQuote=c() )
prodnum <- 9803
sqlQuery(bulk,
paste("DELETE FROM [schema].[table] WHERE date = (SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)) AND ID IN ('"
,prodnum
,"')"
, sep=""), believeNRows=FALSE)
我已经要求其他人使用我的凭据通过 SQL Server 运行查询,这对他们来说似乎工作正常。 R 只是返回这个错误:
[1] "[RODBC] ERROR: Could not SQLExecDirect 'DELETE FROM [schema].[table] WHERE date = (SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)) AND ID IN ('9803)'"
【问题讨论】:
这是您尝试运行的实际错误和 SQL 吗?IN ('9803)
不对。
@duffn 我删除了单引号,但仍然没有运气,其他人再次通过 SQL 服务器运行相同的查询,它工作正常。我只是不断收到那个错误:-/
【参考方案1】:
事实证明,如果表中没有数据,则会返回该错误。我在表中插入了一些数据,然后尝试运行删除查询。 100% 的时间都在工作。
【讨论】:
为什么没有数据就失败了? 2019 这仍然是一个问题。感谢发帖! 我今天遇到了这个问题,表中有数据。没有匹配条件,但这仍然很愚蠢。以上是关于SQL Server 查询因 RODBC 连接而失败,在 SQL Server 中工作的主要内容,如果未能解决你的问题,请参考以下文章
查询在 SQL Server 中工作,但在 RODBC 中不工作
使用 RODBC 和 MS SQL Server 的长时间运行查询超时
R - 使用 RODBC 更新 SQL Server 上的数据
使用 rodbc 包从 R 查询 sql server。需要将日期/时间值作为 where 语句的一部分传递到 sqlQuery