在SQL Query中使用R变量

时间:2014-06-24 10:53:31

标签: sql rserve

我在Java中使用RServe和SQL从数据库中获取数据并绘制结果和R图。这工作正常,但现在我需要在SQL查询中使用一个变量。

在PHP中我知道你只需要关闭语句,添加变量并重新打开语句。

然而,当我在Rserve中尝试这个时,页面就会挂起。

我的代码如下:

String UID = session.getAttribute("sessionUID").toString(); 
c.assign("UID", UID);
c.eval("df <- data.frame(dbGetQuery(con, paste('select UID, BuildingCode, "
+ "DATE_FORMAT(AccessTime, \"%d-%b-%Y\") as Date from test WHERE UID=\"'+UID+'\"')))"); 

没有WHERE UID=\"'+UID+'\"代码完美无缺,所以我知道这是问题,我只是不知道解决方案?

注意:我也尝试使用,而不是this answer中所述的+,但这似乎也无效。

1 个答案:

答案 0 :(得分:0)

解决了!

问题是WHERE UID=\"'+UID+'\"所以我没有尝试使用"转义\",而是在将会话分配给字符串时添加了一些引号。

而不是:

String UID = session.getAttribute("sessionUID").toString(); 

我用过这个:

String UID = '"'+session.getAttribute("sessionUID").toString()+'"'; 

它现在完美无缺!虽然我仍然感到困惑,为什么\"会抛出错误。