2017-09-08 3 views
0

私のpostgreデータベースをRに接続しました。うまくいきましたが、SQLクエリでアポストロフィを使用する必要があるときに、Rは "Unexpected Symbol"というエラーを出します。 RR dbSendQueryコマンドでSQLクエリ内にアポストロフィ( ')を使用する方法?

ev_duration <- dbSendQuery(con, 'SELECT 

         name, 

         ROUND(CAST(DATE_PART('EPOCH', AGE(created_at,submitted_at)) AS NUMERIC)/(60*60),2) as evaluation_duration 
         FROM submissions 
         ;') 

DATE_PART('EPOCH', AGE(created_at,submitted_at)) 

全体の一部私は検索が、適切なソリューションを見つけることができませんでした。ご協力いただきありがとうございます!

+0

私はこれで遊ぶ時間がありませんでしたが、 'DBI'にはここで便利なSQLインジェクションに対するセキュリティを提供する' sqlInterpolate'関数が追加されました。 – Benjamin

答えて

0

バックスラッシュでエスケープします。

ev_duration <- dbSendQuery(con, 'SELECT 
         name, 

         ROUND(CAST(DATE_PART(\'EPOCH\', AGE(created_at,submitted_at)) AS NUMERIC)/(60*60),2) as evaluation_duration 
         FROM submissions 
         ;') 
関連する問題