![](/img/trans.png)
[英]Oracle SQL - How to execute a query stored in a variable via command line
[英]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顯然只支持一個命令?
dbSendQuery
或dbGetQuery
僅用於“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.