【发布时间】:2016-01-29 13:13:21
【问题描述】:
我有一个充满sqlstatements 的同事的文件夹/目录。该文件夹也由他每天更新。我想为期货同事记录这些sqlstatements。但是,我正在寻找一种“自动化”该过程的方法。
我想过每周使用一次crontab 并运行一个R-Markdown 文件,它会自动更新现有的R-Markdown 文件。
我的做法如下:
path = "c:/SQL_files/"
out.file<-""
file.names <- dir(path, pattern =".sql") # here I changed `.txt` to `.sql`
for(i in 1:length(file.names)){
file <- read.csv2.sql(file.names[i],header=TRUE, sep=";", stringsAsFactors=FALSE)
out.file <- rbind(out.file, file)
}
# That second approach comes very close, but just generates a `.txt` for the first
#`.sql` file in the directory with the error:
Error in match.names(clabs, names(xi)) :
names do not match previous names
文件在哪里:
[1] "c:/SQL_files/first.sql"
[2] "c:/SQL_files/second.sql"
path = "c:/SQL_files/"
out.file<-""
files <- list.files(path=path, pattern="*.sql", full.names=T, recursive=FALSE)
for(i in 1:length(files)){
file <- read.table(files[i],header=TRUE, sep=";", stringsAsFactors=FALSE)
out.file <- rbind(out.file, file)
}
提取.sql 内容的loop 似乎根本没有捕获内容(在第一个示例中)或仅捕获目录中第一个文件的内容(第二个示例)。所以我的问题。有没有办法从SQL Text File (.sql) 中提取内容?这可能会导致.txt/.Rmd 如下:(但不必):
第一个循环的输出:my_sql_statement.sql
第二个循环的输出:Select * From Data
【问题讨论】:
-
所以您只想从各种文件中获取所有查询并将它们放入一个 .txt 中?
-
嗨@JakubKania 是的,完全正确。最好是.Rmd,但这只是一个理想
-
您确定不想改用版本控制系统?
-
是的,运行上层命令会很棒。不过谢谢你的建议!
标签: r knitr r-markdown