PL/SQL 美化器&規則解釋&優化代碼


前言

PLSQL有非常強大的自定義設置功能,比如美化文件規則,
使用者可以自行定義編輯規則,以便更好的優化SQL語句,增加可讀性.

例如以下的部分代碼,又長,分段不好,空格太多,結構散亂,還沒有注釋.可讀性太差了.
如果使用PLSQL的美化工具,會變成什么樣

優化前

截圖1-1.亂序sql語句.jpg

優化以后

截圖2-2.優化后sql語句.jpg


使用的規則有
  1. 關鍵字大寫
  2. 標識符首字母大寫
  3. 空行移除
  4. 元素對齊(字段,and/or等等)
  5. ......

美化文件規則

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相應界面導入即可

設置位置

PLSQL美化器設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM