首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将SQL行导出到多个文本文件并对其进行命名

将SQL行导出到多个文本文件并对其进行命名
EN

Stack Overflow用户
提问于 2015-02-11 21:44:09
回答 1查看 1.3K关注 0票数 0

我有一个包含6列和数千行的数据库,我想将其中的内容导出到单独的命名文本文件中。

代码语言:javascript
运行
AI代码解释
复制
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,但并不执着于它(尽管如果我可以避免的话,我宁愿不买程序)。

有什么建议吗?虽然不太技术,但我可以遵循一些基本的代码。

EN

回答 1

Stack Overflow用户

发布于 2015-02-12 10:05:09

您可以使用SQL3.x.x和它的自定义SQLiteStudio函数。

打开"Custom SQL Functions editor“(带有"fx”图标的编辑器),添加新的函数,我们称之为saveToFile。选择Tcl作为实现语言(在右上角),将"Type“保留为Scalar。如果您愿意,您可以定义输入参数(这不是强制的,只是为了让代码助手稍后在调用此函数时为您提供帮助):fileNamecontents。保留“在所有数据库中注册”选项也是可以的。

现在最重要的是-输入以下实现代码:

代码语言:javascript
运行
AI代码解释
复制
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:

代码语言:javascript
运行
AI代码解释
复制
SELECT saveToFile(id || ' - ' || title || '.txt', title || x'0a' || text || x'0a' || text_2) AS result FROM table_name;

此查询将每行创建一个文件,并在文件中将titletexttext_2列作为3个单独的行。

当没有问题时,查询将为每一行返回状态ok;当存在问题时,查询将返回包含错误详细信息的error: ...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28465101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文