PL/SQL 美化器&规则解释&优化代码
前言
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相应界面导入即可