首页 > 数据库 > Oracle > [20220331]如何调整sql语句.txt
[20220331]如何调整sql语句.txt
--//生产环境查看视图定义,在我的机器经过toad格式化查看的语句如下.
CREATE OR REPLACE FORCE VIEW ETC_ZY_LISTDETAIL
...
)
BEQUEATH DEFINER
AS
SELECT t1.fphm AS busno
, /*业务流水号*/
t2.jlxh AS listdetailno
, /*明细流水号*/
t2.fyxm AS chargecode
, /*收费项目代码*/
t3.sfmc AS chargename
, /*收费项目名称*/
'' AS prescribecode
, /*处方编码*/
--//出现这样的情况,看着非常不舒服,主要原因我定义toad格式化sql语句模式逗号在前面.
--//参考链接: [20150304]关于sql格式化问题.txt =>http://blog.itpub.net/267265/viewspace-1448016/
--//也就是实际上sql语句如下:
SELECT empno , /* empno */
ename , /* ename */
job , /* job */
mgr , /* mgr */
hiredate , /* hiredate */
sal , /* sal */
comm , /* comm */
deptno /* deptno */
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//经过toad格式化后查看如下,看上去变得更长了,阅读也不方便:
/* Formatted on 2022/4/1 8:18:53 (QP5 v5.269.14213.34769) */
SELECT empno
, /* empno */
ename
, /* ename */
job
, /* job */
mgr
, /* mgr */
hiredate
, /* hiredate */
sal
, /* sal */
comm
, /* comm */
deptno /* deptno */
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//如何调整呢?测试看看vim下如何快速实现:
--//定义修改范围,使用m命令标识a,b 然后执行如下:
:'a,'bg/^\s*,/s/$/,/
:'a,'bg/^\s*,/s///
--//第一步替换开头含有,的行在结尾加入, .
--//第二步删除开头的逗号.
--//处理后情况如下:
SELECT empno
/* empno */,
ename
/* ename */,
job
/* job */,
mgr
/* mgr */,
hiredate
/* hiredate */,
sal
/* sal */,
comm
/* comm */,
deptno /* deptno */
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//然后在toad sql编辑器里面格式化处理,最后显示如下:
/* Formatted on 2022/4/1 8:20:04 (QP5 v5.269.14213.34769) */
SELECT empno
/* empno */
,ename
/* ename */
,job
/* job */
,mgr
/* mgr */
,hiredate
/* hiredate */
,sal
/* sal */
,comm
/* comm */
,deptno /* deptno */
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//感觉也好不到那里去。
--//处理如下:
:'a,'bg/\s*,/j
--//处理如下:
:'a,'bs+/\*+--+
:'a,'bs+\*/++
:'a,'bs/\s*$//
--//最后结果如下:
SELECT empno -- empno
,ename -- ename
,job -- job
,mgr -- mgr
,hiredate -- hiredate
,sal -- sal
,comm -- comm
,deptno -- deptno
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//如果这样在toad下格式化,结果如下,感觉使用--在结尾这样的风格更好,不会折行:
SELECT empno -- empno
,ename -- ename
,job -- job
,mgr -- mgr
,hiredate -- hiredate
,sal -- sal
,comm -- comm
,deptno -- deptno
FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');
--//主要最近在优化sql语句,看各类开发写sql语句超长,风格各异,不可能统一风格以及习惯,以及改正开发不好习惯.
--//我发现我们团队好像有人写的sql无论多长就是一行.佩服!!
--//记录下来,避免在这些细节上浪费时间,在查看自己喜欢的风格sql语句时心情更好,定位问题更快.
--//比如链接[20220331]为什么不使用索引.txt 的例子就是类似的情况,浪费大量的时间.
--//^_^,感觉自己有一点点强迫症.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2885299/ ,如需转载,请注明出处,否则将追究法律责任。