【问题标题】:Using R variable in SQL Query在 SQL 查询中使用 R 变量
【发布时间】:2014-06-24 10:53:30
【问题描述】:

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

【问题讨论】:

    标签: sql rserve


    【解决方案1】:

    解决了!

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

    而不是这个:

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

    我用过这个:

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

    现在可以完美运行了!虽然我还是很疑惑\"为什么会报错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多