[20150304]关于sql格式化问题.txt

本文探讨了SQL语句的格式化技巧,包括如何合理使用逗号、注释及TOAD工具设置,以提高代码可读性和维护效率。特别强调了在不同情况下的格式化策略,以及如何在TOAD中调整格式化选项以适应不同需求。

[20150304]关于sql格式化问题.txt

--今天看书学习了sql格式化技巧。

--我以前遇到的sql语句很长,喜欢抽取在toad下格式化。一般格式化成如下。

SELECT empno,
       ename,
       job,
       mgr,
       hiredate,
       sal,
       comm,
       deptno
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');

--这样的问题假设要取消不显示hiredate,一般修改如下:

SELECT empno,
       ename,
       job,
       mgr,
       --hiredate,
       sal,
       comm,
       deptno
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');

--这种方式注解最后一个字段就有问题。
SELECT empno,
       ename,
       job,
       mgr,
       hiredate,
       sal,
       comm ,
       --deptno
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');

--今天看书以及blog,才明白逗号在前面这样注解更加科学,实际上许多人都是这种模式。因为一般前面第1个字段很少选择注解。

SELECT empno
      ,ename
      ,job
      ,mgr
      ,hiredate
      ,sal
      ,comm
--    ,deptno
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd')


--这样注解最后1个字段就没有问题。

toad下如下修改呢?
view =>toad options ... => formatter
oracle formatter options=>List Arrangements=>, commas ,选择Leading风格就ok了。

如果select显示少于等于3个字段,显示如下:
SELECT empno, ename, job
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd')
 
--如果也想像上面这样,还可以修改参数
view =>toad options ... => formatter
oracle formatter options=>List Arrangements=>List Defaults ,List item的column修改为1。

但是这样的格式化如下:
SELECT empno
      ,ename
      ,job
  FROM emp
WHERE hiredate = TO_DATE ( :b1
                          ,'yyyy-mm-dd');

--我的建议还是保持不动。 List item的column修改为3。 (修改为2,也可以避免to_date折行)

SELECT empno, ename, job
  FROM emp
WHERE hiredate = TO_DATE ( :b1, 'yyyy-mm-dd');


另外把parentheses选择6.这样也是上面的原则:

/* Formatted on 2015/3/4 12:13:37 (QP5 v5.252.13127.32867) */
BEGIN
   SYS.DBMS_STATS.GATHER_TABLE_STATS
   (
      OwnName            => 'SCOTT'
     ,TabName            => 'DEPT'
     ,Estimate_Percent   => NULL
     ,Method_Opt         => 'FOR ALL COLUMNS SIZE 1 '
     ,Degree             => 4
     ,Cascade            => TRUE
     ,No_Invalidate      => FALSE
   );
END;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-1448016/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-1448016/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值