免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4589 | 回复: 15

[文本处理] 求助如何对SQL语句进行排版 [复制链接]

论坛徽章:
0
发表于 2018-04-05 09:52 |显示全部楼层
现有如下sybase数据库查询语句,需要对其排版:(源文件如下)

'Z002','PYM','
SELECT
SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' ')...FROM SAP_AR_IPYM...

'Z002','REF','
SELECT
SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' ')...FROM SAP_AR_IAAJ...


'Z001','PYE','
SELECT
SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' '),RPAD(A.TERRITORY,2,' ')... FROM AS RSLT SAP_B_COMPANY_CARRIER...

需要变成
'Z002','PYM',' SELECT SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' ')...FROM SAP_AR_IPYM...

'Z002','REF','SELECT SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' ')...FROM SAP_AR_IAAJ...

'Z001','PYE','SELECT SUBSTR(TO_CHAR(?),1,|| NVL(TO_CHAR(A.TERRITORY,' '),RPAD(A.TERRITORY,2,' ')... FROM AS RSLT SAP_B_COMPANY_CARRIER...

每行记录跟之前一样,句与句之间保持空格

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2018-04-05 10:28 |显示全部楼层
  1. awk NF+=0 RS= 1.dat
复制代码

论坛徽章:
0
发表于 2018-04-05 10:42 |显示全部楼层
回复 2# moperyblue

说明下SELECT后面的语句不一定只有一条记录
微信图片_20180405104132.png

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2018-04-05 11:40 |显示全部楼层
回复 3# oldknew
1.
源文件 每段sql语句都以空行分隔吗?

2.

104229fyy1yyagvxkfu33m.png

论坛徽章:
0
发表于 2018-04-05 12:16 |显示全部楼层
回复 4# moperyblue

不是呢,源文件在SQL结束之后,另起一空行标题开始,其他部分没有空行(只有红框处有空行)

微信图片_20180405121532.png

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2018-04-05 12:31 |显示全部楼层
回复 5# oldknew
还是不明白你的需求  
源数据能截一部分发一下吗
期望结果是怎样?

论坛徽章:
0
发表于 2018-04-05 12:58 |显示全部楼层
源文件是修改前的,目标文件是需要修改后的格式

Desktop.zip

1.27 KB, 下载次数: 3

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2018-04-05 13:32 |显示全部楼层
回复 7# oldknew
先转为unix格式
  1. dos2unix 1.dat
复制代码


再执行
  1. awk NF+=0 RS= 1.dat
复制代码


论坛徽章:
0
发表于 2018-04-05 14:59 |显示全部楼层
我试试看先

论坛徽章:
0
发表于 2018-04-05 15:00 |显示全部楼层
1.dat是什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP