PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So führen Sie SQL-Abfragedateien über RPostgreSQL aus

dbSendQuery oder dbGetQuery ist nur für den "SQL"-Teil, nicht die psql-Befehle wie \i .
In Ihrem Fall ist es in der Tat am einfachsten, readLines zu verwenden aber dann umbrechen Sie dbGetQuery in einem sapply anrufen.

con <- dbConnect(...)          #Fill this as usual
queries <- readLines("query.sql")
sapply(queries, function(x) dbGetQuery(con,x))
dbDisconnect(con)

Da ich das sehr oft benutze, habe ich dafür eine Abkürzung in meinem .Rprofile Datei:

dbGetQueries<-function(con,queries)sapply(queries,function(x)dbGetQuery(con,x))

Natürlich können Sie auch zum system gehen Weise:

system("psql -U username -d database -h 127.0.0.1 -p 5432 -f query.sql") #Remember to use your actual username, database, host and port