当前位置:首页 » 存储配置 » 存储过程for循环语句怎么写

存储过程for循环语句怎么写

发布时间: 2022-09-20 11:27:02

Ⅰ mssql 存储过程中循环如何写,在循环中用什么语句跳出循环呢,在线等

给你个例子:

for loop是这样的:
createprocere pro
begin
declare aintdefault1;
label1: loop
if a<6then
selecta;
seta=a+1;
iterate label1;
endif;
leave label1;跳出循环
endloop label1;
end

while是这样的:
createprocere pro
begin
declare aintdefault4;
while a<10 do
selecta;
seta=a+1;
endwhile;
end

Ⅱ 如何在SQL SERVER 2005存储过程中,使用循环语句

实现循环有很多种方式 看你需要 或者喜欢
有for 循环
有while 循环
有foreach 循环
等等 我用的不是 sql sever数据库 具体的 你自己写写看
------------------------------------------------------------
SQL
SERVER数据库建立存储过程时,可以使用循环语句,下面就将为您介绍这种SQL SERVER数据库中存储过程使用循环语句的方法,供您参考。

CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;

DECLARE @userId varchar(50)
DECLARE @count int
SET @count =
0
SELECT @count = count(*) FROM UserService_User WHERE Account like
'%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id
FROM UserService_User WHERE Account like '%111%'
exec
UserService_RemoveUserByUserId @userId
SET @count = @count -1

END
END
说明:
1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE
……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL
SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。
2、循环体中 UserService_RemoveUserByUserId
是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。

这个是我从网上网络的 希望对你有用

Ⅲ Oracle存储过程游标for循环怎么写

  • 首先编写存储过程的整体结构,如下:

    create or replace procere test_proc is

    v_date date; --变量定义

    begin

    select sysdate into v_date from al;

    end test_proc;

Ⅳ 怎么写存储过程

一、整体格式。存储过程的格式如下:
CREATE PROCEDURE [creator.]"proc_name" ( /* parameters,... */ )
/* RESULT ( column-name,... ) */
BEGIN
;
END
其中creator是用户名,比如dba;proc_name是你自己起的过程名;后面的参数可有可无,视自己情况定,如果有格式如(a integer,b char(50));再下面的RESULT应该是返回值,这个没用过不知道怎么回事!
二、内容。把这些都写好了可能是这样:
CREATE PROCEDURE dba.myProcere ( @a integer,@b char(50))
BEGIN
;
END
但是这样子还是不能编译的,因为整个过程体是空的,而我学习的结果是过程中至少要有一个SQL语句。所以要这样写才不会出错:
CREATE PROCEDURE dba.myProcere ( a integer,b char(50))
BEGIN
SELECT * FROM MyTable
END
三、语法。
1、分号。在写的过程中最郁闷的问题是分号!最后发现好像是这样:
每一句都要加分号,不管是SQl语句还是其它的什么语句,但是最后保存后最后一句的分号会被自动删除!(我用的是Sybase的Sybase Central)。
2、定义变量。
格式为Declare @varName integer;(注意有分号!)“@”号好像可有可无!
3、SELECT语句。
格式为:
SELECT Count(*) INTO @varName FROM MyTable WHERE id = @a;
4、if语句。
格式为:
if(varName > 0) then
return
end if;(注意还有分号!)
5、循环语句。
格式为:
loop
……
end loop;(注意分号!)
6、设置变量值。
格式为:
set @varName = 10;
set @varName = @varName2;
7、字符串。
Declare myString char(50);
set @myString = 'Hello!';
要用单引号!
8、定义游标。
格式为:
declare MyCursor dynamic scroll cursor for
select …… from …… where ……;
9、打开、使用和关闭游标。
Open MyCursor;
fetch next MyCursor into ……;
Close MyCursor;
10、调用方法。
string ls_name="test"
DECLARE ProcName1 PROCEDURE FOR ProcName2
@wg_wellid=2,@wg_wgid=1,@wg_stringsid=1,@bha_wellid=2,@bha_name=:ls_name;
execute ProcName1 ;
close ProcName1 ;
其中ProcName1 是调用程序中自定义的过程名,ProcName2是数据库中存储过程的名字,下面的传入的参数。

Ⅳ Oracle存储过程游标for循环怎么写

一、不带参数的游标for循环

1
首先编写存储过程的整体结构,如下:
create or replace procere test_proc is
v_date date; --变量定义
begin
select sysdate into v_date from al;
end test_proc;

2
定义游标:
create or replace procere test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode; --定义游标
begin
select sysdate into v_date from al;
end test_proc;

3
编写for循环:
create or replace procere test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode where rownum<10; --定义游标
begin
select sysdate into v_date from al;
--游标for循环开始
for temp in cur loop --temp为临时变量名,自己任意起
Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。
end loop;
--游标for循环结束
end test_proc;

4
测试运行,点击【DBMS Output】标签页查看结果如下图:

END
二、带参数的游标for循环

1
定义带参数的游标:
cursor cur(v_codetype ldcode.Codetype%TYPE) is
select * from ldcode where codetype = v_codetype; --定义游标
定义游标格式:
cursor 游标名称(变量定义) is 查询语句;
注意:
where条件中的变量名v_codetype要与游标定义cur(v_codetype ldcode.Codetype%TYPE)中的一致。

2
编写for循环部分:
--游标for循环开始
for temp in cur('llmedfeetype') loop
--temp为临时变量名,自己任意起
--cur('llmedfeetype')为"游标名称(传入的变量)"
Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。
end loop;
--游标for循环结束

3
测试运行,点击【DBMS Output

Ⅵ Oracle存储过程游标for循环怎么写

一、不带参数的游标for循环

1
首先编写存储过程的整体结构,如下:
create or replace procere test_proc is
v_date date; --变量定义
begin
select sysdate into v_date from al;
end test_proc;

2
定义游标:
create or replace procere test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode; --定义游标
begin
select sysdate into v_date from al;
end test_proc;

3
编写for循环:
create or replace procere test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode where rownum<10; --定义游标
begin
select sysdate into v_date from al;
--游标for循环开始
for temp in cur loop --temp为临时变量名,自己任意起
Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。
end loop;
--游标for循环结束
end test_proc;

4
测试运行,点击【DBMS Output】标签页查看结果如下图:

END
二、带参数的游标for循环

1
定义带参数的游标:
cursor cur(v_codetype ldcode.Codetype%TYPE) is
select * from ldcode where codetype = v_codetype; --定义游标
定义游标格式:
cursor 游标名称(变量定义) is 查询语句;
注意:
where条件中的变量名v_codetype要与游标定义cur(v_codetype ldcode.Codetype%TYPE)中的一致。

2
编写for循环部分:
--游标for循环开始
for temp in cur('llmedfeetype') loop
--temp为临时变量名,自己任意起
--cur('llmedfeetype')为"游标名称(传入的变量)"
Dbms_Output.put_line(temp.Code); --输出某个字段,使用"变量名.列名"即可。
end loop;
--游标for循环结束

3
测试运行,点击【DBMS Output】标签页查看结果如下图:

http://jingyan..com/article/67508eb437e39e9ccb1ce46a.html

Ⅶ Oracle存储过程游标for循环怎么写

举例回答:

案例:

--For循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用for循环来使用这个游标
declare
--类型定义
cursorc_job
is
selectempno,ename,job,sal
fromemp
wherejob='MANAGER';
--定义一个游标变量v_cinfoc_emp%ROWTYPE,该类型为游标c_emp中的一行数据类型
c_rowc_job%rowtype;
begin
forc_rowinc_jobloop
dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
endloop;
end;

Ⅷ oracle存储过程中循环for in是如何使用的

1、首先编写存储过程的整体结构,如下图所示定义变量。

热点内容
fsb文件解压 发布:2025-03-20 12:31:34 浏览:136
3d源码棋牌 发布:2025-03-20 12:30:31 浏览:238
什么叫服务器访问限制 发布:2025-03-20 12:23:53 浏览:945
机架式服务器如何拆装 发布:2025-03-20 12:23:53 浏览:23
交叉编译器缺少库 发布:2025-03-20 12:20:12 浏览:716
tt语音新人签到领皮肤脚本 发布:2025-03-20 12:20:05 浏览:693
编程招标网 发布:2025-03-20 12:19:28 浏览:1001
风险防控平台服务器地址是什么 发布:2025-03-20 11:59:04 浏览:232
什么为有效wifi密码 发布:2025-03-20 11:57:22 浏览:704
联发科安卓哪个好 发布:2025-03-20 11:56:26 浏览:357