oracle条件判断语句以及goto和null

 //if  then  
 create or replace procedure sp_test(num number)
 is 
  --定义部分
 begin
  --执行部分
	 if num=1 then
	  dbms_output.put_line('等于1');
	 end if;
 end;
 //  if .. then else
 create or replace procedure sp_test(num number)
 is 
   --定义部分
 begin
 --执行部分
	 if num=1 then
	  dbms_output.put_line('等于1');
	 else 
	   dbms_output.put_line('不等于1');
	 end if;
 end;
  //  if .. then elsif..then elsif.. then else
 create or replace sp_test(num number)
 is 
  --定义部分
 begin
  --执行部分
	 if num=1 then
	   dbms_output.put_line('等于1');
	 elsif num=2 then 
	   dbms_output.put_line('等于2');
	 elsif num=3 then
	    dbms_output.put_line('等于3');
	  else
	   dbms_output.put_line('不等于1,2,3');
	 end if;
 end;
 //loop	循环,无论如何都会先执行一次,相当与java中的do{} while();
  create or replace procedure sp_test(num varchar2)
 is 
 --定义部分
 v_num number:=1;
 begin
 --执行部分
	 loop
		insert into user(v_num,name);
		exit when v_num<=10;--退出的条件
		v_num:=v_num+1; --自增
	 end loop;
 end;

  //while 循环
  create or replace procedure sp_test(num varchar2)
 is 
 --定义部分
 v_num number:=1;
 begin
 --执行部分
	while v_num<=10 loop
		insert into user(v_num,name);
		exit when v_num<=10;--退出的条件
		v_num:=v_num+1; --自增
	 end loop;
 end;
 // for  循环
  //while 循环
  create or replace procedure sp_test(num varchar2)
 is 
 --定义部分
 v_num number:=6;
 begin
 --执行部分
	for i in 1..v_num loop --表示从1开始自增
	      insert into user(i,name);
	end loop;
 end;
 oracle 中的goto和null;//goto
declare
v_num int:=1;
begin
	loop
	if v_num=5 then
	 goto end_loop;--跳到指定的goto标志处
	else
	    v_num:=v_num+1;
	end if;
	end loop;
	dbms_output.put_line('v_num'||5);
	<<end_loop>>	--跳到这里
       dbms_output.put_line('结束');
end;
//输出,不会输出 结束
5
//null
declare
v_num int:=1;
begin
	if v_num=5 then
	 dbms_output.put_line('是'||v_num);
	else
	  null;--主要还是为了增加程序的可读性
	end if;
end;
 


猜你喜欢

转载自javaeedevelop.iteye.com/blog/1549528