存储过程编写规范【DB2-SQL】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文档编号:ETL-11-T-2008

DB2 SQL及存储过程编写规范

当前版本:V1.0

版本日期:2009年08月15日

文件信息

修订记录

文件审核/审批

此文件需如下审核

文档分发

此文档将分发至如下个人或机构

1引言

1.1 目的

本标准是针对IBM DB2数据库SQL编写设计而起草的开发规范;同时,也作为各项目ETL组评审ETL任务开发质量的标准之一。

本标准将作为项目规范开发系列之一,并且需要在项目实施工作中不断改进和完善,保障规范能够真正的提高质量和效率。

引言

1.2 总则

整个系统中ETL开发的编码,包括基于封装的程序包中的代码,在对象的命名和使用、程序的注释和排版,都应当注重规范

在编码的过程中,应时刻牢记优化的重要性,对重要程序块或程序包需要注明其逻辑结构。在必要的时候,还应进行代码评审

本规范适用各IBM DB2数据库和项目ETL开发的程序包

应用于系统基于数据库的ETL模块开发并对应用集市相关开发提供参考与指导1.3 预期读者

项目管理人员

软件设计人员

软件编程人员

质量控制人员

软件维护人员

1.4 术语和定义

描述术语

本文档采用以下的术语描述:

规范:编程时强制必须遵守的原则标准:量化的规范。

说明:对此规则或建议进行必要的说明和解释。

示例:对此规则或建议给出适当的例子。

编码术语

编码(Coding)

关键字(Keyword)

函数(Function)

存储过程(Procedure)

变量(Variable)

游标(Cursor)

ETL(Extraction、Translation、Loading)

2编码规范

2.1 命名规范

对象命名不能超过30个英文字母,前缀和单词之间用下划线分隔,尽量不采用汉语拼音,使用英文单词或公认单词缩写,单词缩写可通过去掉“元音”

形成。

所有数据库对象(表、视图、存储过程)、关键字和系统函数、数据类型大写;自定义变量、游标小写。

命名的组成只能使用26个英文字母、下划线或阿拉伯数字,不能使用汉字。 名称具有复数意义时,使用名词的正确的复数形式

当一个SQL 语句中涉及到多个表时,始终使用表名别名来限定字段名。这使其他人阅读起来更清楚,避免了含义模糊的引用。

一般情况下,列名称不应包含表名或者表名的任何形式,列名不允许使用统

一的前缀。

一个目标表对应一个JOB,存储过程JOB命名为“P_”+表名。

变量以小写“v_”开头。

用户Schema不允许使用系统Schema。

2.2 抽取加载策略

如下表所示,下表为常见的抽取与加载方式,

2.3 作业接口规范

为了ETL的统一管理与监控,需要对每个DB2的ETL作业的接口进行规范。示例:

CREATE PROCEDURE db2inst1.P_B_CI_FINANCE_DA TA_CMS

(

IN "I_TX_DATE" CHARACTER(10),

OUT "O_ERR_NUM" INTEGER,

OUT "O_ERR_MSG" V ARCHAR(300)

)

如上所示,每个存储过程由3个参数组成

输入参数I_TX_DA TE:为ETL的批次日期。

输出参数O_ERR_NUM:JOB正常结束返回0,错误时返回DB2的错误SQL代码。

输出参数O_ERR_MSG:JOB自定义消息,正常时返回“处理成功”,如果出错会返回出错的步骤与错误消息。

2.4 变量定义规范

⏹所有的变量定义需在BEGIN与异常处理之间,必须要有注释。

示例:

⏹存储过程中确定长度的变量使用CHAR类型,存储过程中不确定长度的字符变量推荐使

用变长的VARCHAR。

2.5 作业容错处理规范

每个作业需要做容错处理,如下所示,每个作业需要使用统一的容错处理机制。

2.6 作业SQL规范

如下所示,每个字段需要加中文注释,一个字段一行,在字段前面加逗号,关键字后面对齐。

2.7 作业初始化规范

全局变量的初始化紧跟异常处理之后定义。

2.8 作业日志规范

2.8.1作业日志

每个作业,都需要有日志记录。DB2的作业日志将使用统一的接口,模版如下:

2.8.2作业详细日志

作业中的每个步骤,都需要有详细日志记录。DB2的详细作业日志将使用统一的接口,模版如下:

2.9 注释规范

注释的内容要清楚、明了,含义准确,无二义性。

开始注释,主要列出文件名,编写日期,程序功能以及修改记录等。

⏹单行注释

示例:

对变量的定义和分支语句(条件分支、循环分支等)必须在语句前编写注释。通过对函数、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。

⏹除一般描述性注释外,对于脚本中的复杂算法同样应有对此算法的说明性描

述。

⏹可通过注释来为脚本的功能分段(使用较醒目的标记,通常是一个较长的符

号串),使程序更易于阅读。

2.10 排版规范

⏹代码缩进均使用2个‘空格’,不要使用‘Tab’。

⏹脚本的代码分段一般使用1个空白行,功能性分段使用2个空白行。语句书

写规范

⏹存储过程中声明与过程代码的顺序

P1:BEGIN

变量声明(所有变量,包括异常处理中所使用的变量)

游标声明

相关文档
最新文档