Tôi đã gặp khó khăn khi tự đọc các tệp sql và nhận thấy rằng cú pháp thường bị hỏng nếu có bất kỳ nhận xét dòng đơn nào trong sql. Vì trong R, bạn lưu trữ câu lệnh sql dưới dạng một chuỗi dòng đơn, nếu có bất kỳ dấu gạch ngang kép nào trong sql, về cơ bản nó sẽ nhận xét ra bất kỳ mã nào sau dấu gạch ngang kép.
Đây là một hàm mà tôi thường sử dụng bất cứ khi nào tôi đang đọc trong tệp .sql sẽ được sử dụng trong 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)
}