Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEOracle
中的
for
和
while
循环
------------------------------------------------------------------------
有两种方式可以实现条件循环
一、 for 变量 in 开始数值 ... 结束数值 loop end loop ;
二、 while 条件 loop end loop ;
loop 的使用方式:
一、 X := 100;
LOOP
X := X + 10;
IF X > 1000 THEN
EXIT;
END IF END LOOP;
Y := X;
二、 X := 100;
LOOP
X := X + 10;
EXIT WHEN X > 1000;
X := X + 10;
END LOOP;
Y := X;
还有一个 GOTO 的使用,在后面的过程中会有的,用来产生错误日志。
以下是一个非常简单的过程,用来熟悉循环的!
create or replace procedure count_number is
/*
功能描述:计算计算出 1 到 100 的和
t 的值为和
*/
i number(10);
t number(10);
begin
/*
i := 1;
t := 0;
-- 用 while+loop 实现
/*begin
while i <= 100 loop
t := t + i;
i := i + 1;
end loop;
end;
*/
i := 1;
t := 0;
-- 用 for 实现
begin
for i in 1 .. 100 loop
t := t + i;
end loop;
end;
end count_number;
for 循环:
[PL/SQL] 用 For Loop 替代 Cursor
CURSOR FOR Loop
FOR employee_rec in c1 ---employee_rec 直接用,不用提前定义
LOOP
total_val := total_val + employee_rec.monthly_income;
END LOOP;
当使用 CURSOR FOR Loop 时,不用我手工 open cursor close cursor
应用:
begin
FOR emm IN ( SELECT ro_site, ns_site, product_line, wh_type
FROM eis_hq_invhl_mail_data
WHERE report_type = 'Detailed' )
LOOP
DBMS_OUTPUT.put_line( emm.product_line );
eis_hq_invhl_pkg.make_mail_detailed_data
( p_ro_site => emm.ro_site,
p_ns_site => emm.ns_site,
p_product_line => emm.product_line,
p_wh_type => emm.wh_type,
p_current_day => to_date('2005-11-07','yyyy-MM-dd') );
END LOOP;
end;
存储过程 DIY2---- 游标与循环
while 循环:
WHILE( i <= CEIL( LENGTH( p_clob_data ) / 4000 ))
LOOP
v_clob_data := TRIM( SUBSTR( p_clob_data,
i * 4000,
4000 ));
DBMS_OUTPUT.put_line( SUBSTR( v_clob_data,
0,
255 ));
i := i + 1;
END LOOP;
------------------------------------------------------------------------
有两种方式可以实现条件循环
一、 for 变量 in 开始数值 ... 结束数值 loop end loop ;
二、 while 条件 loop end loop ;
loop 的使用方式:
一、 X := 100;
LOOP
X := X + 10;
IF X > 1000 THEN
EXIT;
END IF END LOOP;
Y := X;
二、 X := 100;
LOOP
X := X + 10;
EXIT WHEN X > 1000;
X := X + 10;
END LOOP;
Y := X;
还有一个 GOTO 的使用,在后面的过程中会有的,用来产生错误日志。
以下是一个非常简单的过程,用来熟悉循环的!
create or replace procedure count_number is
/*
功能描述:计算计算出 1 到 100 的和
t 的值为和
*/
i number(10);
t number(10);
begin
/*
i := 1;
t := 0;
-- 用 while+loop 实现
/*begin
while i <= 100 loop
t := t + i;
i := i + 1;
end loop;
end;
*/
i := 1;
t := 0;
-- 用 for 实现
begin
for i in 1 .. 100 loop
t := t + i;
end loop;
end;
end count_number;
for 循环:
[PL/SQL] 用 For Loop 替代 Cursor
CURSOR FOR Loop
FOR employee_rec in c1 ---employee_rec 直接用,不用提前定义
LOOP
total_val := total_val + employee_rec.monthly_income;
END LOOP;
当使用 CURSOR FOR Loop 时,不用我手工 open cursor close cursor
应用:
begin
FOR emm IN ( SELECT ro_site, ns_site, product_line, wh_type
FROM eis_hq_invhl_mail_data
WHERE report_type = 'Detailed' )
LOOP
DBMS_OUTPUT.put_line( emm.product_line );
eis_hq_invhl_pkg.make_mail_detailed_data
( p_ro_site => emm.ro_site,
p_ns_site => emm.ns_site,
p_product_line => emm.product_line,
p_wh_type => emm.wh_type,
p_current_day => to_date('2005-11-07','yyyy-MM-dd') );
END LOOP;
end;
存储过程 DIY2---- 游标与循环
while 循环:
WHILE( i <= CEIL( LENGTH( p_clob_data ) / 4000 ))
LOOP
v_clob_data := TRIM( SUBSTR( p_clob_data,
i * 4000,
4000 ));
DBMS_OUTPUT.put_line( SUBSTR( v_clob_data,
0,
255 ));
i := i + 1;
END LOOP;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15489979/viewspace-744719/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15489979/viewspace-744719/