PLSQL编码指南.docx
《PLSQL编码指南.docx》由会员分享,可在线阅读,更多相关《PLSQL编码指南.docx(15页珍藏版)》请在冰豆网上搜索。
PLSQL编码指南
RD
中国民航信息网络股份有限公司制度
研发中心
PL_SQL编码规范
文件编号:
版本号:
VER1.0.0
编制部门:
中国民航信息网络股份有限公司研发中心产品开发部
编制人:
章秀静
编制日期:
2009.04.10
审批人:
XXX
审批日期:
2009.**.**
变更记录
序号
修改
原因
修改
目的
修改内容
修改人/日期
审批人/日期
修改后的版本号
实施日期
目录
目录III
1.编写目的1
2.适用范围1
3.规范内容1
3.1编码风格2
一般风格2
DML风格2
控制语句4
参数声明5
记录类型6
注释6
3.2命名规范7
变量7
参数7
公用函数(过程)8
数据库对象【参考】8
3.3设计规范9
私用函数(过程)9
数据处理函数/过程9
打包9
附件1:
样本代码10
附件2:
PL/SQL配置参数12
1.编写目的
Ø提高代码的可读性;
Ø提高编码可靠性;
Ø提高代码的可管理性。
2.适用范围
Ø以Oracle数据库为后台存储过程的软件开发工作;
Ø推荐工具为:
PL/SQLdeveloper;
Ø推荐原因:
可自动应用编码规范,无须手工操作;
Ø本文以PL/SQLdevelper的自动化工具为要求和演示;
Ø本规范的代码样本见附件1;
Ø可自动应用于PL/SQLdeveloper的配置见附件2。
3.规范内容
3.1编码风格
一般风格
DML风格
DML命令中的元素排列可视需要选择:
1.每行一个元素(本规范默认)
2.每行固定数量元素
控制语句
参数声明
记录类型
注释
1.记录“日期YYYYMMDD”、“程序员ID”、“变更申请单位置”、“基线版本”和“注释内容”,不限制顺序。
2.如果没有“变更申请单位置”则可省略,否则不能省略。
3.“注释内容”通常写修改的原因。
可省略。
[例]--20070415ZT4.4.0.1增加字段
[例]--20070415ZTDEBUG
[例]--20061220GJV4.2.0UPL-BASE表日期字段类型变化:
DATE->NUMBER(8)
4.解释性注释:
--在要解释的语句后跟注释内容即可
3.2命名规范
变量
1.用前缀识别变量类型(不区分大小写)
类型
前缀
NUMBER
N_
VARCHAR2
VC_
自定义类型
TYPE_
[例]n_countnumber
(1)default0;
2.和某字段关系密切的变量在定义时和该字段保持一致
[例]vc_rdmscpMDP_ADJ_README.RDMSCP%TYPE
参数
1.输入参数前缀为:
i_
[例]i_vc_groupinvarchar2
2.输出参数前缀为:
o_
[例]o_vc_resultoutvarchar2
3.前缀往后请遵守“变量”规范
公用函数(过程)
1.从函数(过程)名字面上能识别函数的功能。
数据库对象【参考】
1.数据表采用12位长度字符命名:
(以下为数据服务设计举例)
字符位
代表分类
含义
代码
1
数据服务系统标识
数据服务系统
D
2
数据所属系统标识
ODS操作性数据存储系统(快报系统)
O
DW数据仓库系统
W
3
数据所属层次
接口层(Interface)
I
数据登台区(Staging)
S
基础数据区(BaseData)
B
应用产品层(Product)
P
4
间隔符
间隔符
_
5
客货标识
客运
P
货运
C
客货合并
A
6—8
模块代码
订座
BOK
运输
UPL
对内开账
IWB
空白票
ADC
调整
ADJ
9—12
事实表内容代码
根据事实表记录的实际内容,使用缩写代码描述
UPLI
说明:
1)如出现某个事实表不能确定属于某个分类,则由项目组统一调整。
2)9-12位字符对应代码为举例代码,具体表名根据实际情况设定。
[例]DWB_PUPLUPLI(数据仓库区的国际客运运输基本数据表)
2.SEQUENCE命名:
加SEQ_前缀
[例]SEQ_SYS_RUNID
暂无
3.3设计规范
私用函数(过程)
1.私用函数(过程)指的是仅供特定模块使用的,没有目标表的函数(过程)
2.尽量避免定义私用函数
3.规范同公用函数(过程)
数据处理函数/过程
1.目标表有且仅有一个,源表可以有零个或多个。
2.中间表可以有多个,但如果中间表和主要源表之间数据粒度发生了变化,建议把一个函数(过程)拆分为两个函数(过程),中间表作为第一个函数(过程)的目标表,作为第二个函数(过程)的主要源表。
3.从函数(过程)名中可识别一个主要源表和一个目标表,不必识别中间表。
如果没有源表,则只须识别目标表。
打包
1.用7位字符表示
字符位
代表分类
含义
代码
1-2
识别程序包
PK
3
分隔符
间隔符
_
4
分类符
数据仓库-SMARTRIX
D
5-7
模块名称
举例:
UPL,SLT,NOD
[例]PK_DSLT
附件1:
样本代码
附件2:
PL/SQL配置参数
将以下内容复制与文本文件,后缀为“br”,即可使用
Version=1
RightMargin=88
Indent=3
UseTabCharacter=FALSE
TabCharacterSize=3
AlignDeclarationGroups=TRUE
AlignAssignmentGroups=TRUE
KeywordCase=1
IdentifierCase=2
UseSpecialCase=FALSE
ItemList.Format=0
ItemList.Align=TRUE
ItemList.CommaAfter=TRUE
ItemList.AtLeftMargin=FALSE
EmptyLines=1
ThenOnNewLine=TRUE
LoopOnNewLine=TRUE
DML.LeftAlignKeywords=TRUE
DML.LeftAlignItems=TRUE
DML.OnOneLineIfPossible=TRUE
DML.WhereSplitAndOr=TRUE
DML.WhereAndOrAfterExpression=FALSE
DML.WhereAndOrUnderWhere=FALSE
DML.InsertItemList.Format=2
DML.InsertItemList.Align=FALSE
DML.InsertItemList.CommaAfter=FALSE
DML.InsertItemList.AtLeftMargin=FALSE
DML.SelectItemList.Format=2
DML.SelectItemList.Align=TRUE
DML.SelectItemList.CommaAfter=FALSE
DML.SelectItemList.AtLeftMargin=FALSE
DML.UpdateItemList.Format=2
DML.UpdateItemList.Align=TRUE
DML.UpdateItemList.CommaAfter=FALSE
DML.UpdateItemList.AtLeftMargin=FALSE
ParameterDeclarationList.Format=2
ParameterDeclarationList.Align=TRUE
ParameterDeclarationList.CommaAfter=TRUE
ParameterDeclarationList.AtLeftMargin=FALSE
RecordFieldList.Format=1
RecordFieldList.Align=TRUE
RecordFieldList.CommaAfter=FALSE
RecordFieldList.AtLeftMargin=FALSE
SplitAndOr=TRUE
AndOrAfterExpression=FALSE
[SpecialCase]