Oracle存储过程开发规范与技巧.doc

Oracle存储过程开发规范与技巧.doc

ID:52738303

大小:263.00 KB

页数:35页

时间:2020-03-30

Oracle存储过程开发规范与技巧.doc_第1页
Oracle存储过程开发规范与技巧.doc_第2页
Oracle存储过程开发规范与技巧.doc_第3页
Oracle存储过程开发规范与技巧.doc_第4页
Oracle存储过程开发规范与技巧.doc_第5页
资源描述:

《Oracle存储过程开发规范与技巧.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、存储过程开发规范与技巧开发规范1.书写规范1):程序头书写规范程序头开始部分应说明程序整体的功能,存储过程名称,编写人,编写日期,修改人,修改日期,版本号以及过程涉及的表和视图。示例如下:-----------------------------------------------------------------------------/*名称及实现功能:版本:(版本号标示:新建V1.0.0小的修改变为V1.0.1大的修改V1.1.0重构V2.0.0)Createby***CreateDate2006-06-29Update

2、by***updateDate2006-06-30修改原因:Updateby***updateDate2006-06-31修改原因:涉及的表或视图:dump_init辅助表(DM):记录存储过程中使用的物化视图日志序号mlog$_acrcusmrsecindex源表(ODS):客户第一索引物化视图日志,使用同义词ft_gld_customerdata目标表(DM):客户事实表*/CREATEORREPLACEPROCEDURE*******---------------------------------------------

3、---------------------------------2):代码书写规范1.语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、Sql保留字大写。2.连接符or、in、and、以及=、<=、>=等前后加上一个空格。3.where子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,连接符右对齐。 4.查询的WHERE过滤,原则应使过滤记录数最多的条件放在最前面。5.多表连接时,使用表的别名来引用列。6.查找数据库表或视图时,只能取出确实需要的那些字段,不要使用*来代替所有列名。7.功能相似的过

4、程和函数,尽量写到同一个包中,加强管理。示例如下:BEGIN--查询员工及对应的部门名称SELECTemp.name,dept.nameFROMl_deptdept,l_employeeempWHEREemp.dept_id=dept.dept_id;END;3)注释书写规范为了提高可读性,应该使用一定数量的注释。注释大约占总行数的1/5。1:注释风格:注释单独成行、放在语句前面。 2:应对不易理解的分支条件表达式加注释;3:对重要的计算应说明其功能;4:过长的函数实现,应将其语句按实现的功能分段加以概括性说明;5:每条SQL语

5、句均应有注释说明6:对于程序的整体功能,应在程序开始部分说明,可采用单行/多行注释。(--或/**/方式)2.命名规范命名对象规则样例存储过程、包、方法1业务相关以模块代码开头gld_assist_check_p2如果区分全量和增量,在最后加标识gld_load_to_etlgld_load_to_etl_full3全局使用,以global开头global_procedure_check变量以v开头v_updatemode1游标以c开头c_tablist内存表以m开头m_table1临时表以t开头t_tmpTable存储过程技术

6、1.存储过程样例CREATEORREPLACEPROCEDUREexample(v_inputINNUMBER,--输入参数v_outputOUTNUMBER--输出参数)ISPRAGMAAUTONOMOUS_TRANSACTION;CURSORc1--定义一个游标,在begin之前ISSELECTb.tablenamemlogtable,MAX(remarks)KEEP(DENSE_RANKLASTORDERBYstarttime)remarksFROMproc_loga,table_procbWHERETO_CHAR(sta

7、rttime,'yyyy-mm-dd')<=--转换时间并做比较TO_CHAR(SYSDATE-TO_DSINTERVAL(TO_CHAR(intervaldays)

8、

9、'00:00:00'),'yyyy-mm-dd')ANDa.remarksLIKE'SUCCEEDED:%'ANDa.procedurename=b.procedurenameGROUPBYb.tablename);--定义结束c1_recc1%ROWTYPE;--定义接受游标数据行的ROWTYPEv_mlogtableVARCHAR(30);v_postper

10、iodCHAR(2);v_acctbalbeginseqNUMBER;v_systimeDATE;BEGINv_input:=0;--变量赋值v_systime:=SYSDATE;OPENc1;--打开游标LOOP--循环FETCHc1INTOc1_rec;--

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。