Jag har själv haft problem med att läsa sql-filer och har upptäckt att syntaxen ofta bryts om det finns några enradskommentarer i sql. Eftersom du i R lagrar sql-satsen som en enkelradssträng, om det finns några dubbla bindestreck i sql kommer det i princip att kommentera vilken kod som helst efter det dubbla bindestrecket.
Det här är en funktion som jag vanligtvis använder när jag läser i en .sql-fil som ska användas i R.
getSQL <- function(filepath){
con = file(filepath, "r")
sql.string <- ""
while (TRUE){
line <- readLines(con, n = 1)
if ( length(line) == 0 ){
break
}
line <- gsub("\\t", " ", line)
if(grepl("--",line) == TRUE){
line <- paste(sub("--","/*",line),"*/")
}
sql.string <- paste(sql.string, line)
}
close(con)
return(sql.string)
}