比较 sqlserver2005、Oracle PL/SQL创建存储过程

 

Sqlserver2005创建存储过程--循环插入数据

---首先判断是否存在同名存储过程,如果有则删除---
if Exists(select name from sysobjects where name='pro_add'and type='P')
drop proc pro_add
go
---创建存储过程,本例为带参类型
create  procedure pro_add(@pvol_dh int,@pfile_id int,@pcounter,@pmax) as

---declare关键字 定义变量,用@标示变量(局部变量),可以一次定义多个变量,每个变量用逗号隔开
declare @counter numeric(10), @vol_dh  numeric(10), @file_id numeric(10)

---开始
begin

---变量赋值语句 set关键字
 set @counter=@pcounter
 set @vol_dh=@pvol_dh
 set @file_id=@pfile_id

---循环语句,循环体中使用begin-end 标示循环体
while @counter<@pmax begin
 insert into vol(vol_id,vol_dh,title)
 values(@counter,@vol_dh,'存储过程创建文')

---每循环一次变量值增1
 set @counter=@counter+1
 set @vol_dh=@vol_dh+1
 set @file_id=@file_id+1
 end
---结束
 end


--调用存储过程
exec pro_add 1,1,1,10

--查看调用结果
select  * from vol

--查看表结构
sp_help vol

 

oracle10g PL/SQL语句

oracle版存储过程说明:


---定义存储过程,PL/SQL中修改已经存在的procedure,不能使用modify进行修改,通过replace关键字进行替换

create or replace procedure pro_add
(
  v_pcounter in number 
, v_pvolid in number 
, v_pvoldh in number 
, v_pmax in number 
) as

---定义变量,PL/SQL中每个语句以分号结束,一行可以写多个语句
v_counter number;
v_volid number;
v_voldh number;

---开始
begin

---变量赋值操作  :=
v_counter:=v_pcounter;
v_volid:=v_pvolid;
v_voldh:=v_pvoldh;

---循环语句
while v_counter< v_pmax

---循环体
Loop
   insert into vol(vol_id,vol_qzh,vol_dh,vol_ajh)
   values
   (v_volid
   ,'A01'
   ,v_voldh
   ,v_counter
   );

   v_counter:=v_counter+1;
   v_volid:=v_volid+1;
   v_voldh:=v_voldh+1;
end loop;

---提交事务
commit;
end pro_add;


----调用-----
exec  pro_add1,1,1,10

----查看表结构
desc vol

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值