PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

आर फ़ंक्शन के भीतर SQL फ़ंक्शन को कॉल करें

ट्रिक shQuote . का उपयोग करना है और sprintf लेकिन ऐसा करने का एक चतुर तरीका है जो मुझे यकीन है।

library(sqldf)
library(RPostgreSQL)

options(sqldf.RPostgreSQL.user = "****",
        sqldf.RPostgreSQL.dbname = "****",
        sqldf.RPostgreSQL.host = "localhost",
        sqldf.RPostgreSQL.port = 5432)

myfunc <- function(name)
    sqldf(sprintf("select * from retrieve_data(%s)", shQuote(name)))

myfunc('Bill')
##   id name year_born nationality
## 1 A1 Bill      2001    American
## 2 A2 Bill      1991    American
## 3 A3 Bill      1995    American

यदि आप स्ट्रिंग को उद्धृत करने से बचना चाहते हैं तो आप उपयोग कर सकते हैं

drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "tempdb")
myfunc2 <- function(name)
    dbGetQuery(con, "select * from retrieve_data($1)", name)

myfunc2("Bill")
##   id name year_born nationality
## 1 A1 Bill      2001    American
## 2 A2 Bill      1991    American
## 3 A3 Bill      1995    American



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ActiveRecord फजी सर्च

  2. संबंध dbo.MyTable नहीं मिला जबकि स्कीमा और तालिका मौजूद हैं

  3. PostgreSQL में एकाधिक कॉलम से मासिक योग दिखा रहा है

  4. PostgreSQL में डेलाइट सेविंग टाइम के साथ टाइम ज़ोन

  5. नियंत्रक को नष्ट करने का प्रयास करते समय मुझे एक पीजी त्रुटि मिलती है