PL/SQL美化规则文件详解

引言:

我们都知道任何一种语言,都应该讲究一定的规范,因为优秀的代码通常都是先让人读懂,其次才是机器读懂。否则没有任何规范和解释说明的代码,后期维护会增加很多成本,即使是开发者自己维护有时后也会忘了个中逻辑和开发思路。SQL也是如此,尤其是存储过程、自定义函数里的片段更为重要,笔者目前在维护的是我们公司PMD一期的一个项目,里面的存储过程,最长的有上千行,虽然解释也有些,但是变量命名规范什么的,修改存储过程的时候,真是苦不堪言。貌似扯得远了,说正题吧PL/SQL中正好有个代码优化的功能,里面可以定义规则,但是始终得不到自己想要的效果,于是乎google在博客里下了些所谓的PL/SQL美化模板,结果效果还是一样的渣渣。趁着午休的时候研究了下.br的文件,想自己定义自己的规范,改一个属性就对照下.br文件的改变,大概了解了里面的语法如下(附件:plsql.br):

Version=1
RightMargin=100//右边距,间接决定了一行的长度
Indent=2//缩进2个字符
UseTabCharacter=FALSE//使用跳格字符?
TabCharacterSize=2//跳格字符大小
AlignDeclarationGroups=TRUE//是否对齐变量声明
AlignAssignmentGroups=TRUE//是否对齐变量赋值部分
KeywordCase=1//关键字的风格 0:不变  1 小写 2 大写 3 首字母大写
IdentifierCase=3//标识符的风格 0:不变  1 小写 2 大写 3 首字母大写
UseSpecialCase=TRUE//使用特殊大小写?
ItemList.Format=1//元素的格式 0:在同一行上  1:尽量放在同一行  2:一个元素一行  3 :自适应
ItemList.Align=TRUE//是否对齐
ItemList.CommaAfter=TRUE//是否在元素后加上逗号
ItemList.AtLeftMargin=FALSE
EmptyLines=0//空行的处理 0:移除 1:并为一行 2:保持原样
ThenOnNewLine=TRUE//then 重起一行
LoopOnNewLine=TRUE//loop 重起一行
//数据操作语句时
DML.LeftAlignKeywords=TRUE//关键字左对齐
DML.LeftAlignItems=FALSE//元素左对齐(包括数据库表字段、表名什么的)
DML.OnOneLineIfPossible=TRUE//如果可能在同一行上
DML.WhereSplitAndOr=TRUE// and/or另起一行
DML.WhereAndOrAfterExpression=FALSE//and/or在表达式后面
DML.WhereAndOrUnderWhere=TRUE //and/or在where 后
DML.JoinSplitBeforeOn=TRUE //连接时在on之前分成两行
//插入语句
DML.InsertItemList.Format=1//元素的格式 0:在同一行上  1:尽量放在同一行  2:一个元素一行  3 :自适应
DML.InsertItemList.Align=FALSE//是否对齐
DML.InsertItemList.CommaAfter=TRUE//在元素后加上逗号
DML.InsertItemList.AtLeftMargin=FALSE//元素在左边
DML.SelectItemList.Format=1//元素的格式 0:在同一行上  1:尽量放在同一行
DML.SelectItemList.Align=TRUE
DML.SelectItemList.CommaAfter=TRUE
DML.SelectItemList.AtLeftMargin=FALSE
DML.UpdateItemList.Format=1
DML.UpdateItemList.Align=TRUE
DML.UpdateItemList.CommaAfter=TRUE
DML.UpdateItemList.AtLeftMargin=FALSE
ParameterDeclarationList.Format=1
ParameterDeclarationList.Align=TRUE
ParameterDeclarationList.CommaAfter=TRUE
ParameterDeclarationList.AtLeftMargin=FALSE
RecordFieldList.Format=1
RecordFieldList.Align=TRUE
RecordFieldList.CommaAfter=TRUE
RecordFieldList.AtLeftMargin=FALSE
SplitAndOr=FALSE
AndOrAfterExpression=FALSE
[SpecialCase]

Oracle标识符命名规则:

当在 PL/SQL 中使用标识符定义变量、常量时,标识符名称必须以字符开始,并且长度不能超过 30 个字符。另外,为了提高程序的可读性,Oracle 建议用户按照以下规则定义各种标识符:
--当定义变量时,建议使用 v_ 作为前缀,例如 v_sal, v_job等。
--当定义常量时,建议使用 c_ 作为前缀,例如 c_rate 。
--当定义游标时,建议使用 _cursor 作为后缀,例如 emp_cursor 。
--当定义例外时,建议使用 e_ 作为前缀,例如 e_integrity_error。
--当定义 PL/SQL 表类型时,建议使用 _table_type 作为后缀,例如 sal_table_type。
--当定义 PL/SQL 表变量时,建议使用 _table 作为后缀,例如 sal_table。
--当定义 PL/SQL 记录类型时,建议使用 _record_type 作为后缀,例如 emp_record_type。
--当定义 PL/SQL 记录变量时,建议使用 _record 作为后缀,例如 emp_record。
PS:有那位大神知道怎么定义更加完美的美化规则文件或者可以分享下吗?我想要的效果是数据表名和字段名 都按照“驼峰”的规范,而别名则一律小写,定义的变量也按照”驼峰“。简单来说就是能不能在辨识符中区分出 数据表的字段名和别名?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrazyMo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值