尝试连接到 R 中的 Microsoft Access 数据库的“参数太少”
Posted
技术标签:
【中文标题】尝试连接到 R 中的 Microsoft Access 数据库的“参数太少”【英文标题】:"Too few parameters" trying to connect to a Microsoft Access database in R 【发布时间】:2014-07-25 20:22:07 【问题描述】:我正在使用 RODBC 连接到 microsoft access 数据库。一些查询工作正常,但在一个我不断收到错误:
07002 -3010 [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
[RODBC] ERROR: Could not SQLExecDirect 'SELECT baseunit FROM archiverapp_common_units WHERE unitname = "ng/ml"'
我正在使用“sqlQuery”函数进行查询。错误中给出的 SELECT 语句是我想要的,并且在我直接复制粘贴到 Access 时起作用。从我收集到的类似帖子来看,这通常是由于列名或表名拼写错误造成的,但这里的一切似乎都是正确的。
【问题讨论】:
可能是您的ng/ml
的语言环境/编码问题您是否尝试在命令行输入此查询?
你让我玩弄命令行,我发现它显然不喜欢你使用双引号,单引号工作正常。
【参考方案1】:
想通了——显然答案是在 WHERE 子句中使用单引号而不是双引号。从此更改我的 R 代码中的查询字符串
'SELECT baseunit FROM archiverapp_common_units WHERE unitname = "ng/ml"'
到这里
"SELECT baseunit FROM archiverapp_common_units WHERE unitname = 'ng/ml'"
解决问题。
【讨论】:
你必须逃离他们吗?发布您的最终命令会很有帮助 不,如果您在 R 中的字符串周围使用双引号,则不会转义。尽管转义没有坏处。 遇到了同样的问题。首先,我认为它与我的查询的 UNION 类型有关。经过几次尝试,通过调用字段Format(DtTm, "Short Date") as Dt,
将其缩小到使用的双引号。替换为单引号;并且,来自RODBC::sqlQuery()
中的R
的查询调用工作正常。谢谢!以上是关于尝试连接到 R 中的 Microsoft Access 数据库的“参数太少”的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 nuget 控制台代码中的代码通过 Microsoft 登录连接到数据库
C#:使用 Microsoft.ACE.OLEDB.12.0 连接到 dbf 文件
SOAP UI:获取响应时出错;尝试连接到 Microsoft SQL Server 时为 null