ORACLE 存储过程编码规范 1.1 变量规范 变量名全部采用大写,局部变量名使用“V_”开头,输入参数以“VI_”开头,输出参数以“VO_”开头,输入输出参数用VIO_开头。所有输入参数必须显示声明 游标的命名:游标统一用后缀 “_CUR” 命名 使用命名的常量以避免硬编码,使用常量包,常量统一用 CN_ 的前缀命名 当变量代表列时,使用%TYPE 属性,当变量实际上表示数据库表的某列数据时,为避免数据库结构修改对变量的影响,应统一使用%TYPE 属性对变量命名 1.2 显示游标规范 外部查询的多行数据返回使用游标进行处理,通过传递游标变量的形式返回数据到外部接口,由外部程序自行 FETCH 数据。 打开游标前,必须显式检查游标的%ISOPEN 属性。 使用FETCH 语句后,要立即检查%NOTFOUND 属性,以便正常终止游标 FETCH循环。 无论 PL/SQL 程序是正常终止还是出错退出,都要关闭所有已打开的游标。在出错退出时,应该在其异常处理部分管理所有游标,这可以释放一部分的系统资源 1.3 事务处理规范 在需要分割事务以使主事务的提交或者回滚独立于子事务的提交及回滚时,应使用自治事务。 所有的存储过程均统一在结束处统一 COMMIT 或者 ROLLBACK。 1.4 日志书写规范 采用公共的 API 包完成后台日志数据记录。(API 完成输出错误信息提示、记录错误信息内容到数据库表、系统级的错误代码及错误信息等) 后台日志的信息记录级别包括 INFO、WARN、ERROR,其定义以及不同级别日志的采集标准如下: INFO-提示信息,供开发人员调试使用,由开发人员自行确定,主要是调试信息,程序运行中普通信息提示。 WARN-警告信息,可能导致严重错误的警告信息 ERROR-错误信息,导致系统运行错误的信息。 所有表操作的错误处理部分均应记录日志信息。 1.5 错误处理规范 凡是涉及到表操作(insert,u pdate,select,delete)的 sql 语句,都必须进行错误捕捉,不能将错误带到后面的语句 从表中 select 数据的语句,应严格区分 NO_DATA_FOUND 和 TOO_MANY_ROWS的错误,并将相应错误信息填入错误信息 NO_DATA_FOUND 多数为查询条件问题导致无数据返回(用户级错误) TOO_MANY_ROWS 应该是数据表内数据异常导致(系统级错误) 所有存储过程(函数)的统一出口一律在存储过程的结束部分,不允许中间返回 在每一个异常处理部分,都要定义...