Импортируйте многострочный SQL-запрос к единственной строке

В R, как я могу импортировать содержание файла многострочного текста (содержащий SQL) к единственной строке?

Файл sql.txt похож на это:

SELECT TOP 100 
 setpoint, 
 tph 
FROM rates

Я должен импортировать тот текстовый файл в строку R, таким образом, что он похож на это:

> sqlString
[1] "SELECT TOP 100 setpoint, tph FROM rates"

Это - то, так, чтобы я мог подать его к RODBC как это

> library(RODBC)
> myconn<-odbcConnect("RPM")
> results<-sqlQuery(myconn,sqlString)

Я попробовал команду readLines следующим образом, но она не дает формат строки это потребности RODBC.

> filecon<-file("sql.txt","r")
> sqlString<-readLines(filecon, warn=FALSE)
> sqlString
[1] "SELECT TOP 100 "                              "\t[Reclaim Setpoint Mean (tph)] as setpoint, "
[3] "\t[Reclaim Rate Mean (tph)] as tphmean "       "FROM [Dampier_RC1P].[dbo].[Rates]"           
> 

15
задан Tommy O'Dell 27 November 2014 в 02:44
поделиться

4 ответа

Универсальная команда paste() может сделать это с аргументом collapse="":

lines <- readLines("/tmp/sql.txt")
lines
[1] "SELECT TOP 100 " " setpoint, "     " tph "           "FROM rates"     

sqlcmd <- paste(lines, collapse="")
sqlcmd
[1] "SELECT TOP 100  setpoint,  tph FROM rates"
17
ответ дан 1 December 2019 в 01:45
поделиться

попробуйте paste(sqlString, collapse=" ")

1
ответ дан 1 December 2019 в 01:45
поделиться

Я использую sql <- gsub("\n",",sql) и sql <- gsub("\t",",sql) вместе.

.
0
ответ дан 1 December 2019 в 01:45
поделиться

Вот окончательный вариант того, что я использую. Спасибо, Дирк.

fileconn<-file("sql.txt","r")           
sqlString<-readLines(fileconn)          
sqlString<-paste(sqlString,collapse="")
gsub("\t","", sqlString)
library(RODBC)
sqlconn<-odbcConnect("RPM")
results<-sqlQuery(sqlconn,sqlString)
library(qcc)
tph <- qcc(results$tphmean[1:50], type="xbar.one", ylim=c(4000,12000), std.dev=600)
close(fileconn)
close(sqlconn)
4
ответ дан 1 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: