Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 中的GOTO,RETURN,EXIT

1.GOTO,主要用于跳转,但会打乱我们的程序逻辑,一般不使用,它可以实现RETURN,EXIT的功能2.RETURN,返回程序末尾,结束程序3.EXIT,主要用于退出当前循环,相当于java中的break.4.要实现java中continue的功能可以使用自定义异常的方式它们之间的比较
  1. --这里的GOTO相当于下面的EXIT用法   
  2. BEGIN   
  3.    FOR i IN 1..2 LOOP   
  4.       IF i=2 THEN   
  5.          GOTO label;   
  6.       END IF;   
  7.       dbms_output.put_line("i="||i);   
  8.          
  9.    END LOOP;   
  10.    <<label>>   
  11.    dbms_output.put_line("the last...");   
  12. END;   
  13. /   
  14. i=1  
  15. the last...   
  16. PL/SQL procedure successfully completed.   
  17. BEGIN   
  18.    FOR i IN 1..2 LOOP   
  19.       IF i=2 THEN   
  20.          --GOTO label;   
  21.          EXIT;   
  22.       END IF;   
  23.       dbms_output.put_line("i="||i);   
  24.          
  25.    END LOOP;   
  26.    <<label>>   
  27.    dbms_output.put_line("the last...");   
  28. END;   
  29. /   
  30. i=1  
  31. the last...   
  32. PL/SQL procedure successfully completed.   
  33. BEGIN   
  34.    FOR i IN 1..2 LOOP   
  35.       IF i=2 THEN   
  36.          --GOTO label;   
  37.          --EXIT;   
  38.          RETURN;   
  39.       END IF;   
  40.       dbms_output.put_line("i="||i);   
  41.    END LOOP;   
  42.    <<label>>   
  43.    dbms_output.put_line("the last...");   
  44. END;   
  45. /   
  46. i=1  
  47. PL/SQL procedure successfully completed.   
  48. --下面相当于上面的RETURN   
  49. BEGIN   
  50.    FOR i IN 1..2 LOOP   
  51.       IF i=2 THEN   
  52.          GOTO label;   
  53.          --EXIT;   
  54.          --RETURN;   
  55.       END IF;   
  56.       dbms_output.put_line("i="||i);   
  57.    END LOOP;   
  58.    dbms_output.put_line("the last...");   
  59.    <<label>>   
  60.    NULL;--这个NULL不能省略,<<label>>不能在END;END LOOP;等之前   
  61. END;   
  62. /   
  63. i=1  
  64. PL/SQL procedure successfully completed.  
自定义异常的方式实现continue的功能
  1. DECLARE   
  2.   e_My_Exception EXCEPTION;   
  3.   --PRAGMA EXCEPTION_INIT (e_My_Exception, -1401);   
  4. BEGIN   
  5.    FOR i IN 1..2 LOOP   
  6.    BEGIN   
  7.       IF i=2 THEN   
  8.          RAISE e_My_Exception;   
  9.       END IF;   
  10.       dbms_output.put_line("i="||i);   
  11.       EXCEPTION   
  12.           WHEN e_My_Exception THEN   
  13.              NULL;   
  14.    END;   
  15.    END LOOP;   
  16.    dbms_output.put_line("the last...");   
  17. END;   
  18. /  
CentOS 5.5命令行安装Oracle 10GLinux 5安装Oracle10g 简易操作手册相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数