存储过程的简单使用

存储过程的定义:

它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),使用的时候直接调用就可以;

存储过程的好处

1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

存储过程的基本形式:


create (or replace) procedure [存储过程名称]([参数名称] [参数类型], ...) is
begin
  [存储工程执行块]
end Test;


存储过程怎么调用呢:

1.如果是在包体内定义的存储过程,可以通过 call/exec 包名.存储过程名 来调用哦!

2.在Plsql中,可以通过 代码段形式调用存储过程

begin
  pro_test;--存储过程名称
end;


存储过程小例子

1.基础表 

uiducodeunameremark
1u01阿尤一号 
2u02阿尤二号 
3u03阿尤三号 
12u12阿尤十二 


2.存储过程 

create or replace procedure pro_test is

---变量定义,变量名+类型
v_uuid varchar(30);
v_uucode varchar(30);
v_uuname varchar(300);


begin-------下面是执行部分了
Declare  
   --声明游标
   Cursor test_cursor is 

select uu.uuid,uu.ucode,uu.uname from uuser uu ;


begin 
  open test_cursor ;
       Loop---循环
         --使用游标给变量赋值
         fetchtest_cursor into 
         v_uuid,
         v_uucode,
         v_uuname;
         ---如果uuid的话,将其remark字段更新为hahahha ,如果不是则拼接字符串
         if(v_uuid ='1')then 
             update uuser us set us.remark='hahahha' where us.uuid=v_uuid;
         else 
             update uuser us set us.remark='测试'||v_uuname where us.uuid=v_uuid;
         end if;
           commit;
         
         exit when test_cursor%Notfound;        
         
       end Loop;
  close test_cursor;
end test_cursor;

end pro_test;


3.执行存储过程后表的结果大家可以自己试试哦!


uid
ucodeunameremark
1u01阿尤一号hahahha
2u02阿尤二号测试阿尤二号
3u03阿尤三号测试阿尤三号
12u12阿尤十二测试阿尤十二





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值