【问题标题】:SQL Server query failed with RODBC connection, works in SQL ServerSQL Server 查询因 RODBC 连接而失败,在 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 服务器运行相同的查询,它工作正常。我只是不断收到那个错误:-/

标签: sql-server r rodbc


【解决方案1】:

事实证明,如果表中没有数据,则会返回该错误。我在表中插入了一些数据,然后尝试运行删除查询。 100% 的时间都在工作。

【讨论】:

  • 为什么没有数据就失败了?
  • 2019 这仍然是一个问题。感谢发帖!
  • 我今天遇到了这个问题,表中有数据。没有匹配条件,但这仍然很愚蠢。
猜你喜欢
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-24
  • 2011-07-26
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
相关资源
最近更新 更多