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 - просто завершить их символом ";". Если вы поставите это в конце каждой команды, вы сможете передать их в БД в одну строку.

Другие вопросы по тегам