Oracle中的for和while循環(huán) 有兩種方式可以實(shí)現(xiàn)條件循環(huán) 一、for 變量 in 開始數(shù)值...結(jié)束數(shù)值 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; 還有一個(gè)GOTO的使用,在后面的過程中會(huì)有的,用來產(chǎn)生錯(cuò)誤日志。 以下是一個(gè)非常簡(jiǎn)單的過程,用來熟悉循環(huán)的! create or replace procedure count_number is /* 功能描述:計(jì)算計(jì)算出1到100的和 t的值為和 */ i number(10); t number(10); begin /* i := 1; t := 0; --用while+loop實(shí)現(xiàn) /*begin while i <= 100 loop t := t + i; i := i + 1; end loop; end; */ i := 1; t := 0; --用for實(shí)現(xiàn) begin for i in 1 .. 100 loop t := t + i;
end loop; end; end count_number; for循環(huán): [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; 當(dāng)使用CURSOR FOR Loop時(shí),不用我手工open cursor close cursor 應(yīng)用: 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; 存儲(chǔ)過程DIY2----游標(biāo)與循環(huán) while循環(huán): 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; |
|