以Oracle为例,举例说明如何创建和使用存储过程。
一、创建无参数的存储过程
1、创建
set serveroutput on
create or replace procedure pro_no_param
as
begin
declare
i int;
begin
for i in 1..5 loop
dbms_output.put_line(i);
end loop;
end;
end pro_no_param;
说明:
① set serveroutput on 表示打开dbms_output的方法,以在控制台输出信息;
② pro_no_param 是存储过程的名字;
③ declare 区用来声明变量;
④ 在第四行begin和最后一行(end pro_no_param;)之间编写存储过程要处理的代码;
2、使用
在SQL PLUS中执行以下命令:execute pro_no_param
就会调用该存储过程循环输出1~5的字符。
二、创建带输入参数的存储过程
1、创建
create or replace procedure addUser(pName in varchar2, pPwd in varchar2, pUsertype in varchar2)
as
begin
declare
seq varchar2(8);
begin
select seq_users_id.nextval into seq from dual;
insert into customer(cid, username, password, usertype)
values (seq, pName, pPwd, pUsertype);
insert into customer_log(cid, username, password, usertype)
values (seq, pName, pPwd, pUsertype);
commit;
end;
end addUser;
说明:
① addUser 是存储过程名;
② pName in varchar2 ... 是参数列表,pName是参数名、in表示是输入项、varchar2是参数类型;
③ 该存储过程实现一系列的数据库操作,包括获取一个序列的值、向两张表中添加记录。
2、使用
在SQL PLUS中执行以下命令:execute addUser('nameXX', 'pwdXX', '1');
执行成功后可在相应表中查看到新增的记录。