![](/img/trans.png)
[英]Getting precise percentages from a SQL Query in R using the RODBC Connection
[英]R dynamic sql query using RODBC and export to .csv
如果我在R studio中运行以下代码,则可以运行,但已设置sys.sleep。 我有大量查询要运行,但我不知道每个查询要花多长时间。 如果我排除sys.sleep,则导出是空白的,因为在查询完成之前运行了导出。 有没有办法让R等待查询完成?
#setup
#install.packages("stringr", dependencies=TRUE)
require(stringr)
library(RODBC)
#odbc connection
db <- odbcDriverConnect("dsn=DW Master;uid=username;pwd=password;")
#sql to be run
qstr <- "select top 10 * from prod"
#variable
weeknum<-c('201401','201402','201403')
for (i in weeknum )
{
data <- sqlQuery(db, qstr, believeNRows = FALSE)
Sys.sleep(10)
filename<-paste("data_", str_trim(i), ".csv")
filename
write.csv(data, file = filename)
}
从这个SO帖子中 ,尝试添加rows_at_time
参数:
data <- sqlQuery(db, qstr, believeNRows = FALSE, rows_at_time = 1)
或者,您可以分解两个过程:
# QUERIES TO DATA FRAMES
weeknum<-c('201401','201402','201403')
for (i in weeknum ) {
data <- sqlQuery(db, qstr, believeNRows = FALSE, rows_at_time = 1)
assign(paste("data",i,sep=""),data)
}
# DATA FRAMES TO CSV FILES
dfList <- c('data201401','data201402','data201403')
for (n in dfList) {
df<-get(n)
filename<-paste(n, ".csv", sep="")
write.csv(df, file = filename)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.