oracle创建简单的存储过程

oracle创建简单的存储过程

创建基本的存储过程代码语言:javascript复制create or replace procedure test1(

param1 in number, --传入参数1

param2 in varchar2, --传入参数2

res out varchar2, --返回参数

...

) is

cus_param1 number; --自定义变量1

cus_param2 varchar2(20); --自定义变量2

begin

null; --处理逻辑的sql

end test1;函数说明create or replace procedure test1:创建一个名称为test1的存储过程, 如果存在就覆盖它;

is:关键词,表明后面将跟随一个PL/SQL体;

begin:关键词,表明PL/SQL体的开始;

null;:PL/SQL处理逻辑的sql,至少需要有一句。此处为null表示什么也不做;

end:关键词,表明PL/SQL体的结束;

参数说明1、传入参数param1 in number,param2 in varchar2,res out varchar2存储过程参数不带取值范围,类型可以使用任意Oracle中的合法类型;

in表示传入;

out表示输出;

2、变量cus_param1 number,cus_param2 varchar2(20)变量带取值范围,类型可以使用任意Oracle中的合法类型;

创建带判断和事务的存储过程代码语言:javascript复制create or replace procedure test2(bf_id in number,status in number,res out varchar2) is

count_num number;

begin

select count(*) into count_num from sft_sys_bfinfo where bfid=bf_id;

if count_num > 0 then

begin

update sft_sys_bfinfo set tj_cfg=status where bfid=bf_id;

end;

end if;

commit;

res := '成功';

Exception

When others then

Dbms_output.Put_line(sqlerrm); --打印输出错误

Rollback; --回滚事务

dbms_output.put_line('存储过程执行异常,事物回滚!');

res := '失败';

end test2;变量赋值1、通过select xxx into 变量赋值代码语言:javascript复制select count(*) into count_num from sft_sys_bfinfo where bfid=bf_id;2、通过变量:=xxx赋值代码语言:javascript复制res :='成功'if判断代码语言:javascript复制if count_num > 0 then

begin

update sft_sys_bfinfo set tj_Cfg=status where bfid=bf_id;

end;

end if;提交事物,异常处理,事物回滚代码语言:javascript复制commit;代码语言:java复制Exception

When others then

Dbms_output.Put_line(sqlerrm); --打印输出错误

Rollback; --回滚事务

dbms_output.put_line('存储过程执行异常,事物回滚!');

res := '失败';注意,传入的参数不要和sql的属性名同名1、错误,查询条件不生效代码语言:javascript复制select count(*) into count_num from sft_sys_bfinfo where bfid=bfid;2、正确代码语言:javascript复制select count(*) into count_num from sft_sys_bfinfo where bfid=bf_id;

相关推荐

PDF 代表什么以及是什么,有多少种 PDF 格式?
365体育投注官网

PDF 代表什么以及是什么,有多少种 PDF 格式?

📅 02-14 👁️ 6019
飞机票查询
365bet体育在线比分

飞机票查询

📅 10-19 👁️ 2515
好人命不长,祸害遗千年
beat365官方登录入口

好人命不长,祸害遗千年

📅 06-17 👁️ 4915