Oracle存储过程编码规范RD中国民航信息网络股份有限公司制度研发中心Oracle存储过程编码规范文件编号:版本号:VER1.0.0编制部门:中国民航信息网络股份有限公司研发中心产品开发部编制人:章秀静编制日期:2009.04.10审批人:XXX审批日期:2009.**.**Oracle存储过程编码规范变更记录序号修改原因修改目的修改内容修改人/日期审批人/日期修改后的版本号实施日期Oracle存储过程编码规范目录目录..............................................................................................................................................III1.编写目的...........................................................................................................................12.适用范围...........................................................................................................................13.规范内容...........................................................................................................................13.1.命名规范............................................................................................................................13.1.1.存储过程名称....................................................................................................................13.1.2.存储过程的输入输出参数................................................................................................13.1.3.变量的命名........................................................................................................................13.1.4.参数的命名........................................................................................................................23.2.注释信息............................................................................................................................33.2.1.开头注释............................................................................................................................33.2.2.变量初始化........................................................................................................................43.2.3.程序主体............................................................................................................................43.2.4.程序主体的注释................................................................................................................43.3.错误处理............................................................................................................................43.3.1.存储过程的异常处理的原则............................................................................................43.3.2.程序成功处理(必须)....................................................................................................43.3.3.特定错误处理(可选)....................................................................................................53.3.4.异常处理(必须)............................................................................................................53.4.其它规范............................................................................................................................63.4.1.回滚操作说明....................................................................................................................63.4.2.调用后台程序的参数处理及其他约定............................................................................6附录A部分编程常用单词缩写.....................................................................................................9附录B主要模块英文缩写名.......................................................................................................10Oracle存储过程编码规范第1页1.编写目的规范项目SP代码的编写,保证程序风格的同一性和一致性。2.适用范围适用于企业所有Oracle系列数据库SP程序的软件开发工作。3.规范内容3.1.命名规范3.1.1.存储过程名称采用“p+模块名一位缩写+功能描述”的格式命名;如p_YWRTJOB。3.1.2.存储过程的输入输出参数存储过程根据需要自行决定参数的数目、类型和长度;对于需要提交给任务管理器调用的存储过程,为了保证任务管理器的统一调度;需要用另外一个存储过程进行封装,该封装sp的输入参数采用i_parm命名,输出变量采用o_parm来命名,类型为varchar2(80),如长度需要超过80,提交讨论,原则不应大于200。只能有一个输入和一个输出参数,输出参数的第一位是‘O’(OK)或者‘E’(ERROR),第2位开始开始直接写错误信息(如果正确返回,从第2位开始可以写返回信息,内容不作要求),用该sp来调用具体实现业务操作的存储过程。3.1.3.变量的命名所有的变量采用格式为:变量前缀_变量描述。一般变量的前缀使用类型的缩写:NCHAR:ncCHAR:cVARCHAR2:vcNVARCHAR2:nvcNUMBER:nDATE:dOracle存储过程编码规范第2页ROWID:ridUROWID:uridBINARY_INTEGER:biPLS_INTERGER:piBOOLEAN:bBLOB:blbCLOB:clbNCLOB:nclbBFILE:bfl例如:vc_StnName、n_FlightDate。游标变量:前缀为cur。存放游标记录集。记录型变量:前缀为rec。存放记录型数据。表类型变量:前缀为tab。存放表类型数据。3.1.4.参数的命名参数命名规范为:参数方向缩写_变量名。参数方向缩写的缩写如下:IN:iOUT:oINOUT:io例如:i_n_FlightDateo_vc_AgentID注意:需要被作业管理调用的封装过的存储过程,其参数是已经规定好的,不遵循本命名规范。Oracle存储过程编码规范第3页3.2.注释信息3.2.1.开头注释----------------------------------------------------------------------------------------------------------------PROCEDURENAME:SALMCH(SAMPLE)----NAMEINSYSMTH:SALMCH--------DESCRIPTION:SQLPROCEDURETEMPLATE----FORNEWDOMESTICDEVELOPMENT----INVOKE:NONE----TYPE:BATCH/SCH/ONLINE--------PROGRAMMEDBY:ARKDATE2004/04/09----MODIFIEDBY:ARKDATE2004/04/10----MODIFIEDBY:ARKDATE2004/05/09--------COPYRIGHT1997~2005ACCA-ARKO-----------------------------------------------------------------------------------------------------------------说明:PROCEDURENAME:见前面命名规范;NAMEINSYSMTH:指出该存储过程在作业控制表中的对应名称;DESCRIPTION:存储过程功能说明;INVOKED:此存储过程调用了哪个(些)存储过程,“NONE”表示此存储过程没有调用其它程序,空白表示还不确定;一般地,当程序编写、测试完毕,这个地方不允许为空白;PROGRAMMEDBY:存储过程编写人员,及编写日期;MODIFIEDBY:存储过程修改人员及修改日期,可写多行;TYPE:程序的类型,分为三种:批处理、自动作业、联机调用,英文分别为BATCH\SCH\ONLINE;自动作业:所有自动作业的头程序是自动作业类型;批处理:提交给作业管理器进行管理的异步作业是批处理类型;Oracle存储过程编码规范第4页联机调用