R 编写函数以从 Oracle 数据库中提取数据

R writing a function to extract data from an Oracle database

我正在尝试在 R 中编写一个函数,它接受输入并将其添加到预定义的 SQL 查询中。这是为了避免每次输入更改时都重写相同的查询,而是使用该函数。

但是我对函数的语法有疑问。

函数

该函数将 input 一个唯一 ID 和 returns 一个站点名称作为

library(RODBC)

con= odbcConnect(dsn = "DB", uid="morp101", pwd="abcdxyz1234",rows_at_time=500)

getsitename=function(input) {

sitename=sqlQuery(con,"Select DISTINCT(SITE_NAME) FROM SITE_TABLE 
                    WHERE SITE_CODE = '&input&'")
return(sitename)

}

上述函数在测试时应给出以下输出

getsitename(1011APQ)

Result: Madison Bay

但是语法错误,不确定如何正确连接 input

如有任何建议,我们将不胜感激。并为缺乏可重现的数据而道歉,我不确定我如何获得这个问题。

您可以使用 paste0() 创建查询:

getsitename=function(input) {
  query = paste0("Select DISTINCT(SITE_NAME) FROM SITE_TABLE WHERE SITE_CODE = '", input, "'")
  sitename=sqlQuery(con,query)
  return(sitename)
}

所以当input='1234'时,paste0()语句returns

"Select DISTINCT(SITE_NAME) FROM SITE_TABLE WHERE SITE_CODE = '1234'"