您的位置:首页 > 数据库 > Oracle

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

2011-12-13 15:50 218 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: