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+'\"完全に機能するので、これが問題であることはわかっていますが、解決策がわからないだけですか?

注:この回答に記載されているように、 + の代わりに , を使用してみましたが、どちらも機能していないようです。

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 に答える