将SQL行导出到多个文本文件并命名它们
我有一个包含6列和数千行的数据库,我想将其中的内容导出到单独的命名文本文件中将SQL行导出到多个文本文件并命名它们,sql,sqlite,export,naming,Sql,Sqlite,Export,Naming,我有一个包含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... 我想为每行创建以下文本文件: fil
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...
我想为每行创建以下文本文件:
filename=id-title.txt;
内容=标题
filename=id-title.txt;
内容=文本
filename=id-title.txt;
内容=文本2
我看了,想不出怎么做。我曾在Excel中使用宏将单元格转换为txt,但文本太大,无法满足Excel的单元格字符限制
我使用的是SQLite,但我并不执着于它,如果可以避免的话,我宁愿不买程序
有什么建议吗?虽然不太技术化,但我可以遵循一些基本代码 您可以使用3.x.x及其自定义SQL函数
打开带有fx图标的自定义SQL函数编辑器并添加新函数,我们称之为saveToFile。选择Tcl作为实现语言,它位于右上角,将类型保留为标量。如果您想定义输入参数,那么它不是强制性的,只是为了让代码助手在以后调用这个函数时帮助您: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编辑器”窗口,其中有一张空白纸和一支铅笔,并键入如下查询:
SELECT saveToFile(id || ' - ' || title || '.txt', title || x'0a' || text || x'0a' || text_2) AS result FROM table_name;
此查询将为每行创建一个文件,并将标题、文本和文本列作为文件中的三行
当没有问题或错误时,查询将返回每一行的状态ok:。。。出现问题时显示错误详细信息,例如创建文件。您的意思是,对于每一行,您希望创建相同的文件3次,但内容不同。你能说得更准确些吗?这些不是应该是3个不同的文件吗?或者它是一个包含3行内容的文件?谢谢!你说得对,这是3个不同的文件,内容不同。这段代码对我很有用,我修改了SQL编辑器查询,使其只在内容中包含标题,它就起作用了。制作文件时,它不喜欢标题中的奇怪字符,例如“/”,所以我只是告诉它对其进行URL编码,然后在创建后重命名文件。虽然不漂亮,但能胜任。