概念理解
一组SQL数据集,为了完成特定功能。
一次编译,永久有效。用户通过指定存储过程的名字并给出参数来执行它。
数据库中的一个重要对象。
在数据量特别庞大的情况下可以达到倍数的效率提升。
分类
1.系统存储过程
以**sp_**开头,系统自带的,用于获取信息,相关管理工作。
2.本地存储过程(一般所说的就是这种)
由用户创建以供完成某一特定功能,方便使用
3.临时存储过程
&emsp&emsp分为两种,共同点都存方与tempdb
- 第一种:
名称以**#**开头的,局部临时存储过程,只有创建它的用户可以使用。 - 第二种
名称以**##**开头的,全局临时存储过程,所有用户共同都可使用。
4.远程存储过程
&emsp&emsp位于远程服务器上的存储过程,可以使用分布式查询和execute命令执行
5.扩展存储过程(Extended Stored Procedure)
名称以**xp_**开头,用户使用其他外部语言编写的存储过程。
基本语法
创建存储过程
create procedure 存储过程名
(
@\[参数名][类型],
@\[参数名][类型]
)
as
begin
SQL语句
End
create or replace procedure mydemo07(ID in int, user_name in varchar,pssword in varchar, created_date in DATE,created_by IN varchar,UPDATED_date IN DATE,UPDATED_by IN varchar,is_valid IN varchar)
as
begin
insert into T_USER_INFO VALUES(ID,user_name,pssword,created_date,created_by,UPDATED_date,UPDATED_by,is_valid);
--UPDATE T_USER_INFO t SET t.USER_NAME='sunqi' WHERE t.ID=ID ;
--DELETE T_USER_INFO t WHERE t.ID=ID ;
commit; --提交
end;
begin
mydemo07(3,'ex_sunqi','666666',SYSDATE,'ex_sunqi',SYSDATE,'ex_sunqi','Y');
end;
修改存储过程
alter procedure 存储过程名
(
```略```
)
as begin
SQL语句
end
删除存储过程
drop procedure 存储过程名
存储过程的调用
- command命令:exec 存储过程名[参数名]
- SQL环境下:call 存储过程名[参数名]
- PL/SQL环境下:begin 存储过程名[参数名] end