簡體   English   中英

如何通過RPostgreSQL執行sql查詢文件

[英]How to execute sql query files via RPostgreSQL

我使用RPostgreSQL包通過R訪問我的PostgreSQL數據庫(9.3)。 我有一些很長很大的SQL查詢(從raster2pgsql生成幾個MB大。)。

如何在R中發送/執行sql查詢文件作為語句?

正常的方式

\i query.sql

似乎沒有通過dbSendQuery工作。 我試圖通過readLines讀取整個sql文件中的字符向量,但是這也失敗了,因為dbSendQuery顯然只支持一個命令?

dbSendQuerydbGetQuery僅用於“SQL”部分,而不是dbGetQuery命令,例如\\i
在你的情況下,最簡單的確是使用readLines ,然后在一個sapply調用中包裝dbGetQuery

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

由於我經常使用它,我在.Rprofile文件中有一個快捷方式:

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

當然,你也可以采用system方式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM