先说需求:我在linux上部署的达梦数据库。现在需要查询一些数据并分列导出到excel文件内。
这个如果是在windows管理工具上面非常方便,sql查询复制到excel或者直接导出excel就能做到。但是在linux上怎么做呢?
解决方法:使用 spool命令。
spool命令是在达梦数据库中用来将SQL执行结果输出到文件中的命令。可以使用spool命令设置输出文件的路径和文件名,以及输出格式等。在执行spool命令后,达梦数据库会将SQL执行结果输出到指定的文件中,方便用户进行后续处理和分析。
下面简单演示一下。
先登录数据库
使用spool命令指定要输出的文件 spool /usr/local/out.csv
需要注意的是,spool并不会自动去创建不存在的目录和文件,所以需要确保后面跟上的路径和文件是在当前服务器真实存在的。(简单的说就是先去创建一个空的文件)
spool命令指定之后我们就正常输入你的sql查询语句执行。
比如 SELECT 列1,列2 FROM 模式名.表名
sql语句执行之后需要执行 spool off; 命令,将sql查询结果写入到你指定的文件内。
好,现在数据已经写入。我们把在服务器上创建的csv文件下载到本地打开
可以看到,数据已经写入,接下来我们需要根据需求把数据内容分列。
这里推荐一个方式,查询sql的时候指定自己的分隔符号,比如(^)。
我这边演示下 使用 SELECT 列1||'^'||列2 FROM 模式名.表名 查询
打开csv文件,并指定分列。先将不需要的数据删除,只留需要分列的数据
选择上方数据选择卡,选中需要分列的A列。点击选项卡下发的分列选择按钮
选择分列之后,选择分割符号,下一步
选择其他,将我们定义的分隔符 ^ 输入
点击完成,即可将数据分列
至此,需求实现。
此文仅供参考。更多达梦数据库相关命令可以搜索官方文档进行阅读。