我有一个包含6列和数千行的数据库,我想将其中的内容导出到单独的命名文本文件中。
id title text text_2
1 blah lorem ipsem... indigo violet...
2 gunf ipsem lorem... up down left...
3 faff sir I have a... amarillo albuquerque...
我想为每一行创建以下文本文件:
文件名= id - title.txt;内容=标题
文件名= id - title.txt;内容=文本
文件名= id - title.txt;内容= text_2
我已经看过了,但不知道该怎么做。我曾经在Excel中使用宏将单元格转换为txt,但文本对于Excel的单元格字符限制来说太大了。
我正在使用SQLite,但并不执着于它(尽管如果我可以避免的话,我宁愿不买程序)。
有什么建议吗?虽然不太技术,但我可以遵循一些基本的代码。
发布于 2015-02-12 10:05:09
您可以使用SQL3.x.x和它的自定义SQLiteStudio函数。
打开"Custom SQL Functions editor“(带有"fx”图标的编辑器),添加新的函数,我们称之为saveToFile
。选择Tcl
作为实现语言(在右上角),将"Type“保留为Scalar
。如果您愿意,您可以定义输入参数(这不是强制的,只是为了让代码助手稍后在调用此函数时为您提供帮助):fileName
和contents
。保留“在所有数据库中注册”选项也是可以的。
现在最重要的是-输入以下实现代码:
if {[catch {
lassign $argv fileName contents
set fd [open "C:/tmp/a/$fileName" a+]
puts $fd $contents
close $fd
} res]} {
return "error: $res"
} else {
return "ok"
}
代码包含C:/tmp/a
,它是将创建文件的目录的路径。将其更改为您想要的任何内容。该目录必须存在。
提交你的函数(提交按钮在函数编辑器的顶部)。
现在打开SQL编辑器窗口(有一张白纸和一支铅笔),然后像这样输入query:
SELECT saveToFile(id || ' - ' || title || '.txt', title || x'0a' || text || x'0a' || text_2) AS result FROM table_name;
此查询将每行创建一个文件,并在文件中将title
、text
和text_2
列作为3个单独的行。
当没有问题时,查询将为每一行返回状态ok
;当存在问题时,查询将返回包含错误详细信息的error: ...
。
https://stackoverflow.com/questions/28465101
复制相似问题