R: запустить несколько строк SQL из текстового файла
В R, как я могу импортировать содержимое многострочного текстового файла (содержащего SQL) в несколько строк SQL?
Я изучил импорт многострочного SQL-запроса в одну строку и сумел заставить работать простой SQL-скрипт. Однако когда SQL требует новой строки (т.е. когда вы добавляете оператор SELECT), он не работает, когда вы помещаете все строки сценария sql в одну строку.
Файл sql .txt выглядит так:
CREATE TABLE #Countries (Country varchar(255), Region varchar(255))
INSERT INTO #Countries VALUES ('China', 'EM')
SELECT * FROM #Countries
Код R выглядит так:
fileconn<-file("R/sql.txt","r")
sqlString<-readLines(fileconn)
sqlString<-paste(sqlString,collapse="","")
sqlconn <- odbcDriverConnect(connection = ....)
sqlQuery(sqlconn,sqlString)
Я также пробовал CAT и GSUB, но у меня такое ощущение, что проблема возникает, когда третье утверждение следует за вторым в одной строке.
Кто-нибудь может мне помочь с этой проблемой? Большое спасибо.
1 ответ
Есть два способа разделения команд SQL. Либо вы отправляете их отдельно. Это то, что вы получили бы, просто выполнив каждую строку файла в цикле for, но, конечно, у вас возникла проблема, что делать, если одной команде требуется более одной строки, верно? Второй способ отделить команды SQL - просто завершить их символом ";". Если вы поставите это в конце каждой команды, вы сможете передать их в БД в одну строку.