plsqldev美化规则文件详细解释(关键字大写,标识符小写等规则)
场景:
使用plsqldev客户端编写SQL时,时常对SQL语句的格式感到不悦,非常的不便于阅读。
解决:
为了使格式一步到位,且统一,可通过修改pl/sql美化器文件的相关规则达到自己想要的效果。
使用方法如下:
1.首先在随意一个目录创建一个以br为后缀的文件plsql_bf.br(文件名随意,但需以.br为后缀),
如这里在d盘创建,然后将一下内容复制到文件
br文件内容如下:
Version=1
//右边距,间接决定了一行的长度
RightMargin=120
//缩进2个字符
Indent=2
//使用跳格字符
UseTabCharacter=FALSE
//跳格字符大小
TabCharacterSize=4
//是否对齐变量声明
AlignDeclarationGroups=TRUE
//是否对齐变量赋值部分
AlignAssignmentGroups=TRUE
//关键字格式:0-不变,1-大写,2-小写,3-首字母大写
KeywordCase=1
//标识符格式:0-不变,1-大写,2-小写,3-首字母大写
IdentifierCase=2
UseSpecialCase=TRUE
ItemList.Format=1
ItemList.Align=TRUE
ItemList.CommaAfter=TRUE
ItemList.AtLeftMargin=FALSE
EmptyLines=1
//then 重起一行
ThenOnNewLine=FALSE
//loop 重起一行
LoopOnNewLine=FALSE
//###############数据操作语句
//关键字左对齐
DML.LeftAlignKeywords=FALSE
//元素左对齐(包括数据库表字段、表名什么的)
DML.LeftAlignItems=FALSE
DML.OnOneLineIfPossible=TRUE
DML.WhereSplitAndOr=TRUE
DML.WhereAndOrAfterExpression=FALSE
DML.WhereAndOrUnderWhere=TRUE
//连接时在on之前分成两行
DML.JoinSplitBeforeOn=TRUE
//###插入语句
//元素行格式:1-同一行,2-一个元素一行,3-自适应
DML.InsertItemList.Format=2
//在元素后加逗号
DML.InsertItemList.Align=FALSE
DML.InsertItemList.CommaAfter=FALSE
DML.InsertItemList.AtLeftMargin=FALSE
//###查询语句
//元素行格式:1-同一行,2-一个元素一行,3-自适应
DML.SelectItemList.Format=2
DML.SelectItemList.Align=TRUE
//在元素后加逗号
DML.SelectItemList.CommaAfter=FALSE
DML.SelectItemList.AtLeftMargin=FALSE
//###更新语句
DML.UpdateItemList.Format=2
DML.UpdateItemList.Align=FALSE
//在元素后加逗号
DML.UpdateItemList.CommaAfter=FALSE
DML.UpdateItemList.AtLeftMargin=FALSE
ParameterDeclarationList.Format=1
ParameterDeclarationList.Align=TRUE
//在元素后加逗号
ParameterDeclarationList.CommaAfter=FALSE
ParameterDeclarationList.AtLeftMargin=FALSE
RecordFieldList.Format=1
RecordFieldList.Align=TRUE
//在元素后加逗号
RecordFieldList.CommaAfter=FALSE
RecordFieldList.AtLeftMargin=FALSE
SplitAndOr=FALSE
AndOrAfterExpression=FALSE
[SpecialCase]
2.在plsqldev客户端设置格式:
编辑 -
PL/SQL美化器选项 -
规则文件的选项那里点击刚刚创建的文件plsql_bf.br -
然后点击应用 -
再确定结束即可。
3.查看效果
原SQL格式:
select a.id as aaaaa --dadff
,a.name as bb,b.iiii as i,b.i as i
from test testa a
left join testttttb b on a.id = b.id
where id>=111
having count(1) >1
order by 1
美化后的SQL:
SELECT a.id AS aaaaa --dadff
,a.name AS bb
,b.iiii AS i
,b.i AS i
FROM test testa a
LEFT JOIN testttttb b
ON a.id = b.id
WHERE id >= 111 HAVING COUNT(1) > 1
ORDER BY 1