0

我在 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中所述,但这似乎也不起作用。

4

1 回答 1

0

解决了!

问题在于,在将会话分配给字符串时,我只是添加了一些引号,WHERE UID=\"'+UID+'\"而不是试图逃避。"\"

而不是这个:

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

我用这个:

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

它现在完美运行!虽然我仍然很困惑为什么\"会抛出错误。

于 2014-06-24T12:41:12.243 回答