【发布时间】:2017-06-30 19:07:01
【问题描述】:
我尝试了readLines 和read.csv 的功能,但都不起作用。
这是my_script.sql文件的内容:
SELECT EmployeeID, FirstName, LastName, HireDate, City FROM Employees
WHERE HireDate >= '1-july-1993'
它保存在我的桌面上。
现在我想从我的 R 脚本运行这个查询。这是我所拥有的:
conn = connectDb()
fileName <- "C:\\Users\\me\\Desktop\\my_script.sql"
query <- readChar(fileName, file.info(fileName)$size)
query <- gsub("\r", " ", query)
query <- gsub("\n", " ", query)
query <- gsub("", " ", query)
recordSet <- dbSendQuery(conn, query)
rate <- fetch(recordSet, n = -1)
print(rate)
disconnectDb(conn)
在这种情况下,我没有得到任何回报。我可以尝试什么?
【问题讨论】:
-
如果您手动执行
dbSendQuery(conn, "SELECT Emp..."),那里是否返回任何行?您确定这是从文件读取部分的问题,而不是数据不存在的问题吗? -
是的,如果我这样做,则返回数据。我相信我只是不知道如何从
.sql文件中读取它。 -
我已经在 SQL Server 和 Postgres 上测试了这个过程,没有任何问题(我没有可用的 mysql)。我也使用
paste(readLines(...), collapse = " ")取得了同样的成功。由于.sql文件只是具有不同文件扩展名的文本文件,因此没有什么宇宙性的。这与您使用query与query2有关吗?你没有展示你是如何得到第二个变量的。 -
我删除了 query2,因为它是一个错误,我将其更改为仅查询。您能建议一种使文件被读取为 UTF-8 的方法吗?我收到了一些非 UTF-8 符号。
-
你试过
readLines(..., encoding="UTF-8")吗?您可能还想查看iconv()。
标签: sql r postgresql