Oracle中的loop循环的例子

转自:Oracle中的loop循环的例子


第一:loop... exit when...end loop;

Sql代码 复制代码  收藏代码
  1. declare  
  2. temp_salary employee.salary%type;   
  3. temp_emp employee%rowtype;   
  4. cursor mycursor is    
  5. select * from employee where employee.salary>temp_salary;   
  6. begin  
  7. temp_salary:=2000;   
  8. open mycursor;   
  9. loop    
  10. fetch mycursor into temp_emp;   
  11. exit when mycursor%notfound;   
  12. dbms_output.put_line('编号:'||temp_emp.empid||','||'名字:'||temp_emp.empname||','||'薪水:'||temp_emp.salary);   
  13. end loop;   
  14. end;  
declare
temp_salary employee.salary%type;
temp_emp employee%rowtype;
cursor mycursor is 
select * from employee where employee.salary>temp_salary;
begin
temp_salary:=2000;
open mycursor;
loop 
fetch mycursor into temp_emp;
exit when mycursor%notfound;
dbms_output.put_line('编号:'||temp_emp.empid||','||'名字:'||temp_emp.empname||','||'薪水:'||temp_emp.salary);
end loop;
end;

 output:

Sql代码 复制代码  收藏代码
  1. 编号:13,名字:aaa,薪水:2440   
  2. 编号:10,名字:dwj,薪水:2140   
  3. 编号:12,名字:eee,薪水:2140  
编号:13,名字:aaa,薪水:2440
编号:10,名字:dwj,薪水:2140
编号:12,名字:eee,薪水:2140

 

loop

statament1;

exit when condition;

statament2;

end loop;

 

第二:for i in 1...n loop...end loop;

Sql代码 复制代码  收藏代码
  1. declare  
  2. temp_emp employee%rowtype;   
  3. cursor cur2 is select * from employee where employee.salary>2000;   
  4. begin  
  5. if cur2%isopen = false then  
  6. open cur2;   
  7. end if;   
  8. for i in 0..3 loop   
  9. fetch cur2 into temp_emp;   
  10. exit when cur2%notfound;   
  11. dbms_output.put_line('编号:'||temp_emp.empid||','||'名字:'||temp_emp.empname||','||'薪水:'||temp_emp.salary);   
  12. end loop;   
  13.   
  14. close cur2;   
  15. end;  
declare
temp_emp employee%rowtype;
cursor cur2 is select * from employee where employee.salary>2000;
begin
if cur2%isopen = false then
open cur2;
end if;
for i in 0..3 loop
fetch cur2 into temp_emp;
exit when cur2%notfound;
dbms_output.put_line('编号:'||temp_emp.empid||','||'名字:'||temp_emp.empname||','||'薪水:'||temp_emp.salary);
end loop;

close cur2;
end;

 output:

Sql代码 复制代码  收藏代码
  1. 编号:13,名字:aaa,薪水:2440   
  2. 编号:10,名字:dwj,薪水:2140   
  3. 编号:12,名字:eee,薪水:2140  
编号:13,名字:aaa,薪水:2440
编号:10,名字:dwj,薪水:2140
编号:12,名字:eee,薪水:2140

 

for i in 0...n loop

statement1;

exit when condition;

statament;

end loop;


你可能感兴趣的:(Oracle)