登录 |  注册
首页 >  编程测试工具 >  PLSQL Developer入门使用教程笔记 >  PLSQL格式化\美化Sql设置

PLSQL格式化\美化Sql设置

设置方法: 

  1. 打开PL/SQL Developer;

  2. PL/SQL Developer 12这个版本中,SQL美化器在Configure中;

  3. 右击PL/SQL Beautifier按钮,现在添加到快捷工具栏(为灰色说明已添加,可略过此步骤),如下图所示:plsql.jpg

  4. 在Tools中就可以看到SQL美化按钮,点击即可完成SQL格式化。如果要对部分SQL语句格式化,需要先选中SQL内容。

    plsql.jpg


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

PL/SQL自动样式

将以下设置,保存为“ plsql.br ” 文件,使用PL/SQL的 edit --> PL/SQL Beautifier Options 添加这个文件并启用,之后编辑存储过程或者SQL时,CTRL+S(保存)时,就会自动将当前的语句按照设置的格式进行格式化

Version=1
RightMargin=76
Indent=2
UseTabCharacter=FALSE
TabCharacterSize=2
AlignDeclarationGroups=TRUE
AlignAssignmentGroups=TRUE
KeywordCase=1
IdentifierCase=2
UseSpecialCase=TRUE
ItemList.Format=3
ItemList.Align=TRUE
ItemList.CommaAfter=TRUE
ItemList.AtLeftMargin=FALSE
EmptyLines=1
ThenOnNewLine=FALSE
LoopOnNewLine=FALSE
DML.LeftAlignKeywords=FALSE
DML.LeftAlignItems=FALSE
DML.OnOneLineIfPossible=TRUE
DML.WhereSplitAndOr=TRUE
DML.WhereAndOrAfterExpression=FALSE
DML.WhereAndOrUnderWhere=TRUE
DML.JoinSplitBeforeOn=TRUE
DML.InsertItemList.Format=3
DML.InsertItemList.Align=FALSE
DML.InsertItemList.CommaAfter=TRUE
DML.InsertItemList.AtLeftMargin=FALSE
DML.SelectItemList.Format=3
DML.SelectItemList.Align=TRUE
DML.SelectItemList.CommaAfter=TRUE
DML.SelectItemList.AtLeftMargin=FALSE
DML.UpdateItemList.Format=3
DML.UpdateItemList.Align=TRUE
DML.UpdateItemList.CommaAfter=TRUE
DML.UpdateItemList.AtLeftMargin=FALSE
ParameterDeclarationList.Format=2
ParameterDeclarationList.Align=TRUE
ParameterDeclarationList.CommaAfter=TRUE
ParameterDeclarationList.AtLeftMargin=TRUE
RecordFieldList.Format=1
RecordFieldList.Align=TRUE
RecordFieldList.CommaAfter=TRUE
RecordFieldList.AtLeftMargin=FALSE
SplitAndOr=FALSE
AndOrAfterExpression=FALSE
#Db

自动样式文件属性说明:

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。

使用方法

新建一个文本文档叫 XXX.br即可 将以上代码复制进去

在PLSQL相应界面导入即可

plsql.png

上一篇: PLSQL Developer介绍
推荐文章
  • 在IntelliJIDEA中,要根据数据库表直接生成对应的DataObject(DO)类,可以利用其内置的 DatabaseTools 功能,特别是其中的 JPABuddy插件 或者 ReverseEngineering(逆向工程) 功能。这里提供两种方法供您参考:方法一:使用JPABuddy插件J
  • 说到分支管理模型,令人最为熟悉的莫过于TrunkBased和GitFlow。TrunkBased模型是持续集成思想所崇尚的工作方式,它由单个master分支和许多release分支组成,每个release分支在特定版本的提交点上从master分支创建出来,用来进行上线部署和Hotfix。在Trunk
  • 在IntelliJIDEA(简称IDEA)中,如果你想避免导入星号(*)的方式引入包中的所有类,可以在设置中调整IDE的行为,使其遵循更严格的代码风格规范。虽然Java允许使用import*形式的静态导入(例如importstaticjava.util.Arrays.*;),但通常建议尽量明确导入所
  • 随着软件开发项目越来越庞大,代码管理的难度也越来越大,特别是在团队协作中。Git作为目前最流行的代码版本控制工具之一,可以帮助我们高效地管理代码版本,并且很容易集成到团队的工作流中。在Git中,我们经常会遇到需要将新增的文件夹排除在Git的库之外的情况。这些文件夹可能是临时生成的文件夹、缓存文件夹或
  • 1.迁移已有的Gitlab代码仓库存储目录gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-data/repositories,通常需要更改此路径到单独的一个分区来存储仓库的数据。例如,我这里把数据存放到/data/gitlab目录下,创建/data/gitlab
  • 编辑辑/etc/gitlab/gitlab.rb修改如下:external_url "http://gitlab.example.com"例如本人设置的如下:external_url 'http://gitlab.yukx.com'设置完成之后:重置配置sudo gitlab-ctl reconfi
学习大纲
 PLSQL Developer介绍
PLSQL格式化\美化Sql设置