【发布时间】:2018-12-05 17:31:33
【问题描述】:
我有几个 .sql 文件,它们在 SQL 数据库中聚合了许多表/视图。我希望能够将 R 定向到特定的 sql 文件并执行它并在数据框中返回结果。
谷歌搜索似乎只能获取数据库中的实际表/视图,或者我必须重写 sql 查询并通过包 RODBC 运行它。
在 python 中,这可以通过 pd.read_sql_query 完成
【问题讨论】:
-
您必须先通过
RODBC或其他包连接到您的数据库,然后才能对数据库执行 SQL 命令。如果数据存在于 R 中,您可以使用库sqldf对内存中的数据运行 SQL 查询。 -
没有什么能阻止您将 .sql 文件作为单个字符串读取到 R 中,然后通过您的 RODBC 连接将其发送到数据库,就像您自己键入的任何其他查询一样。有一个名为 squr 的包(可能只在 github 上)可以做这种事情(而且可能比你想要的要多得多)。
-
一点也不难。我有自己的自制系统(从 squr 派生),其中有包含数十个 sql 文件的整个软件包,其中许多都有 cmets。这真的没什么大不了的。
-
sql <- paste(readLines("myfile.sql"), collapse = "\n")。现在sql是一个保存 SQL 字符串的 R 变量。