加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 14:49:09 所属栏目:MsSql教程 来源:网络整理
导读:? Sqlserver2005创建存储过程--循环插入数据 ---首先判断是否存在同名存储过程,如果有则删除--- if Exists(select name from sysobjects where name='pro_add'and type='P') drop proc pro_add go ---创建存储过程,本例为带参类型 create? procedure pro_a
?

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,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_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,10

----查看表结构 desc vol

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读