存储过程是命名程序块,其实质是通过一系列的SQL语句,根据传入的参数,可以完成比单个SQL语句更复杂的功能。举个例子:想要向一张表中插入大量数据(5万),就可以通过写一个存储过程直接调用,方便很多,而且存储过程可保存。
比如建立个测试表
1
2
3
4
5
6
7
8
|
create
table
test
(id
int
,
name
varchar2(10),
counts
int
);
insert
into
test
values
(1,
'张三'
,100);
insert
into
test
values
(2,
'李四'
,200);
commit
;
|
现在给你出个题目是
查询所有人加在一起的counts是多少
创建存储过程
1
2
3
4
5
6
7
|
create
or
replace
p_test
--创建存储过程,
as
v_counts
int
;
--定义变量
begin
--开始
select
sum
(counts)
into
v_counts
from
test;
--将得到的结果放到变量里
DBMS_OUTPUT.PUT_LINE(v_counts);
--将结果打印输出
end
;
--结束
|
执行这种不带输入参数的
1
2
3
|
begin
p_test;
end
;
|
然后你检查下结果
再给你创建一个带输入参数的
题目是,查询id为1的人名是什么
1
2
3
4
5
6
7
8
|
create
or
replace
p_test1
(v_id
int
)
as
v_name varchar2(10);
begin
select
name
into
v_name
from
test
where
id=v_id;
DBMS_OUTPUT.PUT_LINE(v_name);
end
;
|
执行时这样
1
2
3
|
begin
p_test1(1);
end
;
|
第2个我没给你写注释,你看你自己应该能理解吧
补充一下,存储过程不一定只是执行查询,也可以做删除或者修改等sql语句,总体来说就是几个或N个sql语句的集合,来完成系统内某些特定的需求,这些需求可以是一个sql搞定的,也可以是多个sql组合的