(模板)存储过程模版以及命名规范
2015-09-05 21:03:49 访问(2653) 赞(0) 踩(0)
/* -----------------------
procedure, function 命名规则
proc_模块名_具体操作
func_模块名_具体操作
例如问卷模块,则:
proc_questionnaire_add 问卷插入操作
proc_questionnaire_upd 问卷更新操作
proc_questionnaire_del 问卷删除操作
参数命名方面,
只为输入的参数前缀为:i_para
只为输出的参数前缀为:o_para
同为输入,输出前缀为:io_para
其中 o_ErrCode 和 o_ErrMsg 为错误标志参数,其中 o_ErrCode 为0时表示成功,非0为出错,具体数值可自定;
而o_ErrCode为返回出错信息。关键字大写
函数内部变量名定义可参照之前C#的命名规则
-----------*/
-------------例子:
/* -------------------------------------------------
补充说明:
命名规则:proc_ + 存储过程名 + _操作方法
如:proc_vnet_movie_type_add
add:代表新增(如果存储过程名太长,用a代替。如:proc_vnet_movie_type_a)
upd:代表修改(如果存储过程名太长,用u代替。如:proc_vnet_movie_type_u)
del:代表删除(如果存储过程名太长,用d代替。如:proc_vnet_movie_type_d)
存储过程的注释放在 CREATE OR REPLACE PROCEDURE 后面,方便查看。
否则,如果注释放在 CREATE OR REPLACE PROCEDURE 前面,view proc_vnet_movie_type_add 的时候,不能看到相关注释。
存储过程的关键字全大写,数据表相关全小写,其它的(如传入参数,自定义变量,用匈牙利表示法)
存储过程的事务处理:
建议在存储过程里面不使用事务,在页面程序外部统一控制。
避免出现
执行存储过程A
socket请求
执行存储过程B
在socket请求失败的时候,存储过程A的操作不能回滚。
--------------------------------------------------*/
CREATE OR REPLACE PROCEDURE proc_vnet_movie_type_add
(
i_Name IN VARCHAR2, --角色名
i_ParentID IN INT, --父亲ID
o_ErrCode OUT NUMBER, --出错代码
o_ErrMsg OUT VARCHAR2 --出错描述信息
)
/*-----------
描述:新增电影
所用数据表:
TB_VNET_MOVIE_TYPE
TB_VNET_MOVIE
备注:
作者:xxxxx
创建日期:xxxx-xx-xx
修改日志:
作者:xxxxxxx
修改日期:xxxx-xx-xx
修改内容:xxxxxxxxxxxxxx
作者:xxxxxxx
修改日期:xxxx-xx-xx
修改内容:xxxxxxxxxxxxxx
----------------*/
IS
v_Temp NUMBER;
v_ModuleName VARCHAR2(50); --本模块的名称,写日志、显示信息用
v_ErrCode NUMBER; --系统自带的出错代码
v_ErrMsg VARCHAR2(2000); --出错描述,编程者自行定义,但不可以为空
BEGIN
v_ModuleName := 'proc_vnet_movie_type_add';
-- 初始化,要把OUTPUT的值初始化 --
o_ErrCode := 0;
o_ErrMsg := '';
--判断是否有重名
SELECT COUNT(1) INTO v_Temp FROM tb_vnet_movie_type WHERE name = i_Name;
IF (v_Temp > 0) THEN
o_ErrCode := -1;
o_ErrMsg := '角色重名';
END IF;
--插入记录
INSERT INTO tb_vnet_movie_type
(
id,
name,
parentid
)
VALUES
(
seq_vnet_movie_type.NEXTVAL,
i_Name,
i_ParentID
);
--COMMIT;
EXCEPTION
WHEN OTHERS THEN --出现无法识别的错误
o_ErrCode := SQLCODE;
v_ErrMsg := SQLERRM || ' inputpara is:i_Name:' || i_Name || ' i_ParentID:' || i_ParentID;
o_ErrMsg := SQLERRM;
/*------如果存在错误日志表,则进行以下操作
--放入系统错误日志表
INSERT INTO tb_ba_errlogs
(
err_module,
err_code,
err_msg
)
VALUES
(
v_ModuleName,
o_ErrCode,
v_ErrMsg
);
COMMIT;
---------*/
END;
/
show err;
标签:
(模板)存储过程模版以及命名规范 


上一条:
下一条:
相关评论
发表评论