我在R:
中使用RODBC查询SQL Server中的表示例:
num = 2
temp <- sqlQuery(conn, sprintf('SELECT "Time", "Temp"
FROM "DataTable"
WHERE "Week_Number" = %s
ORDER BY "Time"', num))
这样可以正常工作,但如果我尝试在包含字符串的列上使用WHERE子句,我就无法使其工作
示例:
place_name <- 'London'
temp <- sqlQuery(conn, sprintf('SELECT "Time", "Place"
FROM "Data_Table"
WHERE "Place" = %s
ORDER BY "Time"', place_name))
我尝试过各种各样的事情,例如:
place_name <- 'London'
place_name <- \'London\'
place_name <- "'London'"
place_name <- gsub("'", "''", London)
这些都没有奏效。我收到以下错误消息: &#34; 42000 102 [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]伦敦附近的语法错误&#39;。&#34;
有什么建议吗?
答案 0 :(得分:0)
如果有其他人感兴趣,我找到了解决方案。我安装了RODBCext包,它提供了对参数化查询的支持。我使用了以下代码:
query <- 'SELECT "Time", "Place" FROM "Data_Table" WHERE "Place" = ?'
temp <- sqlExecute(conn, query, 'London', fetch = TRUE)
以下是有关使用RODBCext的一些很好的信息:RODBCext