3

在 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,但我觉得当第三条语句在一行中的第二条之后出现问题。

谁能帮我解决这个问题?非常感谢。

4

1 回答 1

3

有两种分隔 SQL 命令的方法。要么你分开寄。这就是通过在 for 循环中执行文件的每一行所得到的结果,但是如果单个命令确实需要多行,那么你当然会遇到问题,对吧?分隔 SQL 命令的第二种方法是简单地以 ; 结束它们。如果你把它放在每个命令的末尾,你应该能够在一个字符串中将任意数量的它们传递给数据库。

于 2011-07-26T11:12:57.917 回答