R语言中用"like"语句执行SQL
Execute SQL with "like" statement in R Language
我正在尝试通过 R 执行 SQL 查询以从 Access DB
获取数据
普通 SQL 语句工作正常,但是当涉及到 like 语句时它会抛出错误
下面是代码:
library(RODBC);
channel = odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ADMIN/Documents/R.accdb")
test = sqlQuery(channel ,paste('SELECT R.ID, R.Template, R.WEDate FROM R WHERE R.Template Like "*slow*"'))
错误:
[1] “07002 -3010 [Microsoft][ODBC Microsoft Access Driver] 参数太少。预期为 2。”
[2] “[RODBC] 错误:无法 SQLExecDirect 'SELECT R.ID, R.Template, R.WEDate FROM R WHERE (R.Template Like \"slow\")'
有没有办法解决这个问题。
考虑 中@joran 的建议,使用单引号括起字符串文字并使用 ANSI-92 通配符运算符 %
。当 运行 内部查询时,即在 MSAccess.exe GUI 程序(默认为 DAO)内,或者如果您使用道。同时,ADO连接使用了大多数外部接口使用的百分比符号,包括RODBC。
我能够重现您的问题,并且这两种补救措施都有效。此外,无需使用 paste()
,因为您没有将任何其他对象连接到查询语句。
library(RODBC);
channel = odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=C:/Users/ADMIN/Documents/R.accdb")
test = sqlQuery(channel,
"SELECT R.ID, R.Template, R.WEDate FROM R WHERE R.Template Like '%slow%'")
我正在尝试通过 R 执行 SQL 查询以从 Access DB
获取数据普通 SQL 语句工作正常,但是当涉及到 like 语句时它会抛出错误
下面是代码:
library(RODBC);
channel = odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/ADMIN/Documents/R.accdb")
test = sqlQuery(channel ,paste('SELECT R.ID, R.Template, R.WEDate FROM R WHERE R.Template Like "*slow*"'))
错误:
[1] “07002 -3010 [Microsoft][ODBC Microsoft Access Driver] 参数太少。预期为 2。”
[2] “[RODBC] 错误:无法 SQLExecDirect 'SELECT R.ID, R.Template, R.WEDate FROM R WHERE (R.Template Like \"slow\")'
有没有办法解决这个问题。
考虑 中@joran 的建议,使用单引号括起字符串文字并使用 ANSI-92 通配符运算符 %
。当 运行 内部查询时,即在 MSAccess.exe GUI 程序(默认为 DAO)内,或者如果您使用道。同时,ADO连接使用了大多数外部接口使用的百分比符号,包括RODBC。
我能够重现您的问题,并且这两种补救措施都有效。此外,无需使用 paste()
,因为您没有将任何其他对象连接到查询语句。
library(RODBC);
channel = odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=C:/Users/ADMIN/Documents/R.accdb")
test = sqlQuery(channel,
"SELECT R.ID, R.Template, R.WEDate FROM R WHERE R.Template Like '%slow%'")