如何按照一个字段的不同值批量导出多个 txt
【问题】
一、原表结构如下
月份 编号 属性 单位 部门 加入时间 所属室
201305 1009 1 A A1 201108 研发室
201305 1009 1 B B1 201207 推广室
201305 1009 1 C C1 201301 支撑室
201305 1009 1 D D1 201109 服务室
201305 1013 2 C C2 201302 支撑室
201305 1027 2 A A3 201007 研发室
... ... ... ... ... ... ...
原表比较大,有400万条记录,网上的方法都是导出EXCEL的,能否通过查询方式实现批量导出,谢谢。
二、期待结果
按“所属室”的不同值批量导出TXT文件,呈现如下:
研发室.txt,内容如下:
月份 编号 属性 单位 部门 加入时间 所属室
201305 1009 1 A A1 201108 研发室
201305 1027 2 A A3 201007 研发室
推广室.txt,内容如下:
月份 编号 属性 单位 部门 加入时间 所属室
201305 1009 1 B B1 201207 推广室
支撑室.txt,内容如下:
月份 编号 属性 单位 部门 加入时间 所属室
201305 1009 1 C C1 201301 支撑室
201305 1013 2 C C2 201302 支撑室
服务室.txt,内容如下:
月份 编号 属性 单位 部门 加入时间 所属室
201305 1009 1 D D1 201109 服务室
【回答】
正常的思路是按照“所属室”分组,将每个分组明细导出到以所属室命名的TXT文件中,但由于SQL无法保存分组内容(分组后必须聚合),实现起来很麻烦,而且由于数据量大,需要使用游标分批向TXT追加写,非常麻烦。
采用SPL循环游标的方式能很好地处理这个问题,脚本如下:
A |
B |
|
1 |
=db.cursor(“select * from tb1”) |
|
2 |
for A1,10000 |
|
3 |
= A2.group(所属室) |
|
4 |
>B3.(file("D:\\"+~.地区+".txt").export@at(~)) |
A1: 根据sql创建数据库游标
A2-B4:对游标A1循环,每次取10000条记录,并按照“所属室”分组,并以追加方式分别导出到以“所属室”命名的txt文件中