/*loop迭代*/
<<loop_exit>>
DECLARE
v_id test01.id%TYPE := &v_id;
BEGIN
LOOP
v_id := v_id + 1;
IF (v_id = id_test01.CURRVAL)
THEN
EXIT;
END IF;
END LOOP;
DBMS_OUTPUT.put_line (id_test01.CURRVAL);
DBMS_OUTPUT.put_line (v_id);
END loop_exit;
/*loop_exit_when迭代*/
<<loop_exit_when>>
DECLARE
v_id test01.id%TYPE := &v_id;
BEGIN
LOOP
v_id := v_id + 1;
EXIT WHEN v_id = id_test01.CURRVAL;
DBMS_OUTPUT.put_line (v_id);
END LOOP;
DBMS_OUTPUT.put_line (id_test01.CURRVAL);
END loop_exit_when;
/* while_exit迭代 */
<<while_exit>>
DECLARE
v_id test01.id%TYPE := &v_id;
BEGIN
WHILE v_id < id_test01.CURRVAL
LOOP
v_id := v_id + 1;
DBMS_OUTPUT.put_line (v_id);
END LOOP;
END while_exit;
/* while_exit_when迭代 */
<<while_exit_when>>
DECLARE
v_id test01.id%TYPE := &v_id;
BEGIN
WHILE v_id < id_test01.CURRVAL
LOOP
v_id := v_id + 1;
exit when v_id=id_test01.CURRVAL-1;
DBMS_OUTPUT.put_line (v_id);
END LOOP;
END while_exit_when;
for 循环 数值型循环
/* v_id 是隐含定义的索引变量,没必要再声明部分定义 ,v_id会隐式地递增*/
<<for_in>>
DECLARE
BEGIN
FOR v_id IN 1 .. 6
LOOP
DBMS_OUTPUT.put_line (v_id);
END LOOP;
END for_in;
/*for_in_reverse逆序 */
<<for_in_reverse>>
DECLARE
BEGIN
FOR v_id IN reverse 1 .. 6
LOOP
DBMS_OUTPUT.put_line (v_id);
END LOOP;
END for_in_reverse;
本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。

欢迎关注“自学Oracle”




