ORACLE存储过程编码规范.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE存储过程编码规范

ORACLE存储过程编码规范 1.1变量规范 变量名、常量名、参数名、函数名、存储过程名、包名等所有对象全部用英文拼写,不允许用汉语拼音,多个单词间用下划线分割。 全局常量全部用大写,全局变量全部用小写,且全局变量尽量避免使用。 局部变量全部小写,使用“v_”开头,输入参数以“i_”开头,输出参数以“o_”开头,输入输出参数用io_开头。 游标的定义:游标统一用前缀 “cur_” 命名 当变量代表列时,使用%TYPE属性,当变量实际上表示数据库表的某列数据时,为避免数据库结构修改对变量的影响,应统一使用%TYPE属性对变量命名 1.2显示游标规范 外部查询的多行数据返回使用游标进行处理,通过传递游标变量的形式返回数据到外部接口,由外部程序自行FETCH数据。 打开游标前,必须显式检查游标的%ISOPEN属性。 使用FETCH语句后,要立即检查%NOTFOUND属性,以便正常终止游标FETCH循环。 无论PL/SQL程序是正常终止还是出错退出,都要关闭所有已打开的游标。在出错退出时,应该在其异常处理部分管理所有游标,这可以释放一部分的系统资源 1.3事务处理规范 在需要分割事务以使主事务的提交或者回滚独立于子事务的提交及回滚时,应使用自动提交事务。 所有的存储过程均统一在结束处统一COMMIT或者ROLLBACK。 1.4错误处理规范 凡是涉及到表操作(insert,update,select,delete)的sql语句,都必须进行错误捕捉,不能将错误带到后面的语句 从表中SELECT数据INTO到指定变量中的SQL语句,应严格区分NO_DATA_FOUND 和 TOO_MANY_ROWS的错误,并将相应错误信息填入错误信息 NO_DATA_FOUND 多数为查询条件问题导致无数据返回(用户级错误) TOO_MANY_ROWS 应该是数据表内数据异常导致(系统级错误) 所有存储过程(函数)的统一出口一律在存储过程的结束部分,不允许中间返回 在每一个异常处理部分,都要定义WHEN OTHER 子程序,以便捕获所有没有显示处理或其他类型的异常 所有程序中捕获到的错误,均转换成对应的errcode,errmsg,通过输出参数返回给调用者,所有存储过程(函数)结束前应统一捕获系统异常 在每个存储过程(函数)的入口处统一先将返回错误代码(errCode)设置为-1,功能处理成功结束后再将错误代码(errCode)设置为0(成功),避免程序过程中因错误未能正确捕获,导致功能未能完成,而程序却成功返回的情况出现 1.5书写规范 PL/SQL语句的所有表名、字段名遵照数据字典的定义,系统保留字、内置函数名、PL/SQL保留字、所有脚本全部大写。 连接符OR、IN、AND、以及=、=、=等前后加上一个空格。 对较为复杂的SQL语句加上注释,说明算法、功能。 注释风格:注释单独成行、放在语句前面。 应对不易理解的分支条件表达式加注释; 对重要的计算应说明其功能; 过长的函数实现,应将其语句按实现的功能分段加以概括性说明; 常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围 可采用单行/多行注释。(-- 或 /* */ 方式) TAB 统一定义为4个空格,建议使用PL/SQL作为SQL书写工具 多表连接时,使用表的别名来引用列。 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。 1.6书写优化性能建议 大量的排序操作影响系统性能,所以尽量减少ORDER BY和GROUP BY排序操作。 如必须使用排序操作,请遵循如下规则 排序尽量建立在有索引的列上 如结果集不需唯一,使用UNION ALL代替UNION 索引的使用 尽量避免对索引列进行计算,这样索引会失效 尽量注意比较值与索引列数据类型的一致性 索引中,尽量避免使用NULL 对于索引的比较,尽量避免使用!= 查询列和排序列与索引列次序保持一致 尽量避免相同语句由于书写格式的不同,而导致多次语法分析。 查询的WHERE过滤原则,应使过滤记录数最多的条件放在最前面。 任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。 IN、OR子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档