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

时间:2018-01-31 14:44:15

标签: r oracle rodbc

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

但是我遇到了函数语法的问题。

功能

该函数将input作为唯一ID,并返回站点名称。

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)
  

结果:麦迪逊湾

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

任何建议都将受到高度赞赏。对于缺乏可重复数据的道歉,我不知道如何才能获得这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用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()语句返回

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