前言
PLSQL有非常強大的自定義設置功能,比如美化文件規則,
使用者可以自行定義編輯規則,以便更好的優化SQL語句,增加可讀性.
例如以下的部分代碼,又長,分段不好,空格太多,結構散亂,還沒有注釋.可讀性太差了.
如果使用PLSQL的美化工具,會變成什么樣
優化前

優化以后

使用的規則有
- 關鍵字大寫
- 標識符首字母大寫
- 空行移除
- 元素對齊(字段,and/or等等)
- ......
美化文件規則
PLSQL 使用的美化規則是Beautifier Rule(*.br)文件,里面的代碼注釋如下.
大部分轉載自cmo https://blog.csdn.net/CrazyMo_/article/details/45890433 ,做了一些可讀性的修改.
以下文件只能參照,不能直接使用,因為加了中文注釋的問題.
Version=1
//一般-
RightMargin=90 //右邊距,間接決定了一行的長度
Indent=2 //縮進字符
UseTabCharacter=TRUE //使用跳格字符TAB
TabCharacterSize=2 //跳格字符大小(多少空格)
AlignDeclarationGroups=TRUE //是否對齊變量聲明
AlignAssignmentGroups=TRUE //是否對齊變量賦值部分
//一般-語法大小寫
KeywordCase=1 //關鍵字的風格 0:不變 1 大寫 2 小寫 3 首字母大寫
IdentifierCase=3 //標識符的風格 0:不變 1 大寫 2 小寫 3 首字母大寫
UseSpecialCase=TRUE //使用特殊大小寫?
//一般-項目列表
ItemList.Format=3 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
ItemList.Align=TRUE //是否對齊
ItemList.CommaAfter=TRUE //是否在元素后加上逗號
ItemList.AtLeftMargin=FALSE //元素在左邊
//一般-空行
EmptyLines=1 //空行的處理 0:移除 1:並為一行 2:保持原樣
//控制結構-
ThenOnNewLine=TRUE //then 重起一行
SplitAndOr=FALSE //and/or另起一行
AndOrAfterExpression=FALSE //and/or在表達式后面
LoopOnNewLine=TRUE //loop 重起一行
//DML-
DML.LeftAlignKeywords=TRUE //關鍵字左對齊
DML.LeftAlignItems=TRUE //元素左對齊(包括數據庫表字段、表名什么的)
DML.OnOneLineIfPossible=TRUE //如果可能在同一行上
DML.WhereSplitAndOr=TRUE //and/or另起一行
DML.WhereAndOrAfterExpression=FALSE //and/or在表達式后面
DML.WhereAndOrUnderWhere=FALSE //and/or在where 字句下面
DML.JoinSplitBeforeOn=TRUE //連接時在on之前分成兩行
//DML-插入
DML.InsertItemList.Format=1 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
DML.InsertItemList.Align=FALSE //是否對齊
DML.InsertItemList.CommaAfter=TRUE //在元素后加上逗號
DML.InsertItemList.AtLeftMargin=FALSE //元素在左邊
//DML-選擇
DML.SelectItemList.Format=1 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
DML.SelectItemList.Align=TRUE //是否對齊
DML.SelectItemList.CommaAfter=TRUE //在元素后加上逗號
DML.SelectItemList.AtLeftMargin=FALSE //元素在左邊
//DML-更新
DML.UpdateItemList.Format=1 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
DML.UpdateItemList.Align=FALSE //是否對齊
DML.UpdateItemList.CommaAfter=FALSE //在元素后加上逗號
DML.UpdateItemList.AtLeftMargin=FALSE //元素在左邊
//參數聲明-
ParameterDeclarationList.Format=1 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
ParameterDeclarationList.Align=TRUE //是否對齊
ParameterDeclarationList.CommaAfter=TRUE //在元素后加上逗號
ParameterDeclarationList.AtLeftMargin=TRUE //元素在左邊
//記錄類型聲明-
RecordFieldList.Format=1 //元素的格式 0:在同一行上 1:盡量放在同一行 2:一個元素一行 3 :自適應
RecordFieldList.Align=TRUE //是否對齊
RecordFieldList.CommaAfter=TRUE //在元素后加上逗號
RecordFieldList.AtLeftMargin=FALSE //元素在左邊
[SpecialCase]
我自己用的規則文件如下
Version=1
RightMargin=90
Indent=2
UseTabCharacter=TRUE
TabCharacterSize=2
AlignDeclarationGroups=TRUE
AlignAssignmentGroups=TRUE
KeywordCase=1
IdentifierCase=3
UseSpecialCase=TRUE
ItemList.Format=3
ItemList.Align=TRUE
ItemList.CommaAfter=TRUE
ItemList.AtLeftMargin=FALSE
EmptyLines=0
ThenOnNewLine=TRUE
LoopOnNewLine=TRUE
DML.LeftAlignKeywords=TRUE
DML.LeftAlignItems=TRUE
DML.OnOneLineIfPossible=TRUE
DML.WhereSplitAndOr=TRUE
DML.WhereAndOrAfterExpression=FALSE
DML.WhereAndOrUnderWhere=FALSE
DML.JoinSplitBeforeOn=TRUE
DML.InsertItemList.Format=1
DML.InsertItemList.Align=FALSE
DML.InsertItemList.CommaAfter=TRUE
DML.InsertItemList.AtLeftMargin=FALSE
DML.SelectItemList.Format=1
DML.SelectItemList.Align=TRUE
DML.SelectItemList.CommaAfter=TRUE
DML.SelectItemList.AtLeftMargin=FALSE
DML.UpdateItemList.Format=1
DML.UpdateItemList.Align=FALSE
DML.UpdateItemList.CommaAfter=FALSE
DML.UpdateItemList.AtLeftMargin=FALSE
ParameterDeclarationList.Format=1
ParameterDeclarationList.Align=TRUE
ParameterDeclarationList.CommaAfter=TRUE
ParameterDeclarationList.AtLeftMargin=TRUE
RecordFieldList.Format=1
RecordFieldList.Align=TRUE
RecordFieldList.CommaAfter=TRUE
RecordFieldList.AtLeftMargin=FALSE
SplitAndOr=TRUE
AndOrAfterExpression=FALSE
[SpecialCase]
使用方式
自行新建
新建一個文本文檔叫 XXX.br即可 將以上代碼復制進去
在PLSQL相應界面導入即可
設置位置

