欢迎来到天天文库
浏览记录
ID:23492306
大小:135.19 KB
页数:11页
时间:2018-11-08
《《规范plsql编码》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、PL/SQL编码规范文档状态:文档编号:规范_PL/SQL编码[]Draft[√]Released[]Modifing编撰:编撰日期:2006-5-21保密级别:机密文档版本:2.0.0PL/SQL编码规范XXX信息技术公司PAGE11OF11PL/SQL编码规范版本历史日期版本说明作者2006-04-080.0.1初稿2006-04-301.0.0咨询公司审计通过,正式发布2006-05-212.0.0增加系统集成项目过程PAGE11OF11PL/SQL编码规范目录1目的42范围43规范内容43.1概
2、述PL/SQL语言的特点43.2整体风格43.3过程和函数编写风格53.4包的编写风格63.5触发器的编写风格73.6标识符命名规范83.7注释要求103.8标识符声明11PAGE11OF11PL/SQL编码规范PL/SQL编码规范1目的为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查、减少出错概率,有助于成员间交流,保证一致性、统一性而建立的PL/SQL程序编码规范。2范围该规范适用于所有使用Oracle数据库基于PL/SQL开发的项目。3规范内容3.1概述PL/SQL语言的
3、特点PL/SQL是一种高级数据库程序设计语言,它是专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务其中,所以PL/SQL代码可以对数据进行快速高效的处理。SQL是先进的第四代程序设计语言,使用这种语言只需对要完成的任务进行描述,而不必指定实现任务的具体方法。PL/SQL代表面向过程化的语言与SQL语言的结合,是在SQL语言中扩充了面向过程语言中使用的程序结构,如:l变量和类型(即可以预定义也可以由用户定义)l控制语句(如IF-THEN-ELSE)和循环l过程和函数l对象类型和
4、方法PL/SQL语言实现了将过程结构与OracleSQL的无缝集成,从而为用户提供了一种功能强大的结构化程序设计语言。3.2整体风格缩进缩进建议以四个空格为单位。例子:Declarev_loopCounterinteger:=1;beginLoop…endloop;PAGE11OF11PL/SQL编码规范end;空格原则上变量、常量数据和函数在其类型,修饰名称之间适当空格并据情况对齐。对齐原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行
5、,换行时尽可能在","处或运算符处。例如:…Typet_StudentRecordisRecord(FirstNameVarchar2(10),LastNameVarchar2(10),CurrentCreditsNumber(3));v_Studentt_StudentRecord;…空行不应该存在无规则的空行,比如说连续十个空行。程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行,由于每个函数还要有函数说明注释,故通常只需空一行或不空,但对于没有函数说明的情况至少应再空一行
6、。注释注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。代码长度对于每一个函数建议尽可能控制其代码合理的长度(50行左右),超过50行的代码要重新考虑将其拆分为两个或两个以上的函数。超长的语句应该在一个逗号或者一个操作符后折行。3.3过程和函数编写风格PL/SQL中的函数和过程(通常称为子程序)是PL/SQL块的一种特殊类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。函数和过程的命名PAGE11OF11PL/SQL编码规范通常,函数和过
7、程的命名是以能表达函数和过程的动作意义为原则。可以是由动词打头,然后跟上表示动作对象的名词,各单词的首字母应该大写。另外,还有一些函数命名的通用规则,如取数,则用Get打头,然后跟上要取的对象的名字;设置数,则用Set打头,然后跟上要设的对象的名字;而对象中为了响应消息进行动作的函数,可以命名为On打头,然后是相应的消息的名称;进行主动动作的函数,可以命名为Do打头,然后是相应的动作名称。函数格式例如:CreateandReplaceFunctionBalance(acct_idINTEGER)RETU
8、RNREALISacct_balREAL;BEGINSELECTbalINTOacct_balFROMacctsWHEREacct_no=acct_id;RETURNacct_bal;ENDBalance;过程格式例如:CreateorReplacePROCEDURERaise_salary(emp_idINTEGER,amountREAL)IScurrent_salaryREAL;salary_missingEXCEPTION;BEGIN
此文档下载收益归作者所有