[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,一般修改如下:
--hiredate,
--這種方式注解最後一個字段就有問題。
comm ,
--deptno
--今天看書以及blog,才明白逗号在前面這樣注解更加科學,實際上許多人都是這種模式。因為一般前面第1個字段很少選擇注解。
SELECT empno
,ename
,job
,mgr
,hiredate
,sal
,comm
-- ,deptno
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
--如果也想像上面這樣,還可以修改參數
oracle formatter options=>List Arrangements=>List Defaults ,List item的column修改為1。
但是這樣的格式化如下:
WHERE hiredate = TO_DATE ( :b1
,'yyyy-mm-dd');
--我的建議還是保持不動。 List item的column修改為3。 (修改為2,也可以避免to_date折行)
另外把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;
/