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美化器设置

posted @ 2020-07-02 16:31  重楼一叶  阅读(4295)  评论(0编辑  收藏  举报