PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment exécuter des fichiers de requête sql via RPostgreSQL

dbSendQuery ou dbGetQuery est juste pour la partie "SQL", pas les commandes psql telles que \i .
Dans votre cas le plus simple est bien d'utiliser readLines mais enveloppez ensuite dbGetQuery dans un sapply appeler.

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

Comme je l'utilise très souvent, j'ai un raccourci pour cela dans mon .Rprofile fichier :

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

Bien sûr, vous pouvez également accéder au system façon :

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