语法:
创新互联公司是一家集网站建设,鹤壁企业网站建设,鹤壁品牌网站建设,网站定制,鹤壁网站建设报价,网络营销,网络优化,鹤壁网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
[ lable_name]
loop
statement...
end loop [lable_name]
请点击输入图片描述
注释:lable_name:loop语句的标签,与结构控制语句case类似
loop:循环的开始
statement:循环体,也就是需要重复执行的语句
end loop:循环结束标志
基本loop循环由于没有控制循环结束语句,所以循环体中需要判断是否循环结束来控制循环,要不然会出现死循环的情况
1ORACLE中的结构控制(case语句)
请点击输入图片描述
一、使用EXIT...WHEN来判断是否循环结束
例:求1+2+..+100的和
DECLARE
str1 number;
nu number;
BEGIN
str1 := 1 ;
nu := 0 ;
loop_text
LOOP
nu := nu + str1;
str1 := str1+1;
EXIT loop_text WHEN str1100 ;
END LOOP;
DBMS_OUTPUT.PUT_LINE('循环结束。1+2+。。。+100的结果为:'||nu);
END;
请点击输入图片描述
代码解析:
第2--6行:声明两个加数并赋予初始值
第9--10:循环体,做四则运算,加数nu + 加数str1 的和在赋值给加数nu
第11行:判断str1是否为真,为真则退出,为假则继续循环
第13行:循环结束后打印输出结果
请点击输入图片描述
二、使用IF语句来判断是否循环结束
例:求1+2+..+100的和
DECLARE
str1 number;
nu number;
BEGIN
str1 := 1 ;
nu := 0 ;
loop_text
LOOP
nu := nu + str1;
str1 := str1+1;
IF str1100 THEN
DBMS_OUTPUT.PUT_LINE('循环结束');
EXIT loop_text;
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('1+2+。。。+100的结果为:'||nu);
END;
1ORACLE中的结构控制(IF语句)
请点击输入图片描述
代码解析:
第1-6行与上诉一致,声明两个参数然后在赋值初始化
第11-13行:使用IF语句做判断,条件为真这执行退出语句EXIT,条件为假则跳过继续循环
请点击输入图片描述
退出循环:EXIT/RETURN
RETURN表示退出整个过程,也就是过程执行到此处结束执行,程序退出;
EXIT表示退出当前循环,继续向下执行,如果是有两层循环的话,EXIT则是退出内层循环,外层循环继续执行。
GOTO用法:
1,先设置标签 《wait_goto》
2,goto wait_goto;程序返回至wait_goto处继续执行。
首先编写存储过程的整体结构,如下:
create or replace procedure test_proc is
v_date date; --变量定义
begin
select sysdate into v_date from dual;
end test_proc;
2
定义游标:
create or replace procedure test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode; --定义游标
begin
select sysdate into v_date from dual;
end test_proc;
3
编写for循环:
create or replace procedure test_proc is
v_date date; --定义变量
cursor cur is select * from ldcode where rownum10; --定义游标
begin
select sysdate into v_date from dual;
--游标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】标签页查看结果如下图:
exit跳出循环,你是说要continue的那,这个似乎没有,可以用if else 来解决。
begin
for i in 1..10 loop
if i3 then
dbms_output.put_line(i);
if i=5 then
exit;
end if ;
end if;
end loop;
end;
loop循环有3种
第一种直接loop 用exit when 退出
第二种是for loop 他用 for i in ... loop
第三种是while loop