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

问题描述 投票:1回答:1

我正在尝试在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

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

r oracle rodbc
1个回答
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'"
© www.soinside.com 2019 - 2024. All rights reserved.