存储过程


概念理解

一组SQL数据集,为了完成特定功能。

一次编译,永久有效。用户通过指定存储过程的名字并给出参数来执行它。

数据库中的一个重要对象。

在数据量特别庞大的情况下可以达到倍数的效率提升。

分类

1.系统存储过程

以**sp_**开头,系统自带的,用于获取信息,相关管理工作。

2.本地存储过程(一般所说的就是这种)

由用户创建以供完成某一特定功能,方便使用

3.临时存储过程

&emsp&emsp分为两种,共同点都存方与tempdb

  1. 第一种:
    名称以**#**开头的,局部临时存储过程,只有创建它的用户可以使用。
  2. 第二种
    名称以**##**开头的,全局临时存储过程,所有用户共同都可使用。

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 存储过程名

存储过程的调用

  1. command命令:exec 存储过程名[参数名]
  2. SQL环境下:call 存储过程名[参数名]
  3. PL/SQL环境下:begin 存储过程名[参数名] end

文章作者: tzkTangXS
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 tzkTangXS !
  目录