PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

извикване на SQL функция в R функция

Номерът е да използвате 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. Как pg_sleep_for() работи в PostgreSQL

  2. Как да изберете записи от последните 24 часа с помощта на PostgreSQL

  3. как да създадете таблица със стойности, сумирани по година в postgres

  4. PostgreSQL JDBC getGeneratedKeys връща всички колони

  5. Подобрете производителността на заявките на PostgreSQL, като оставите съединение за 100 милиона данни