zoukankan      html  css  js  c++  java
  • 标号和goto&null语句

    标号和GOTO 

    PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下:

    GOTO label;
    ......
    <<label>> /*标号是用<< >>括起来的标识符 */

    注意,在以下地方使用是不合法的,编译时会出错误。

    u 跳转到非执行语句前面。

    u 跳转到子块中。

    u 跳转到循环语句中。

    u 跳转到条件语句中。

    u 从异常处理部分跳转到执行。

    u 从条件语句的一部分跳转到另一部分。

    例12:

     1 DECLARE
     2    V_counter NUMBER := 1;
     3 BEGIN
     4    LOOP 
     5      DBMS_OUTPUT.PUT_LINE('V_counter的当前值为:'||V_counter);
     6      V_counter := v_counter + 1;
     7    IF v_counter > 10 THEN
     8        GOTO labelOffLOOP;
     9    END IF;
    10    END LOOP;
    11    <<labelOffLOOP>>
    12      DBMS_OUTPUT.PUT_LINE('V_counter的当前值为:'||V_counter);
    13 END;

    例13:

    DECLARE
       v_i NUMBER := 0;
       v_s NUMBER := 0;
    BEGIN
       <<label_1>>
       v_i := v_i + 1;
       IF v_i <= 1000 THEN
          v_s := v_s + v_i;
          GOTO label_1;
       END IF;
       DBMS_OUTPUT.PUT_LINE(v_s);
    END;

     NULL 语句 

    在PL/SQL 程序中,NULL语句是一个可执行语句,可以用 null 语句来说明“不用做任何事情”的意思,相当于一个占位符或不执行任何操作的空语句,可以使某些语句变得有意义,提高程序的可读性,保证其他语句结构的完整性和正确性。如:

    例14:

     1 DECLARE
     2     ...
     3 BEGIN
     4     ...
     5     IF v_num IS NULL THEN
     6     GOTO labelPrint;
     7     END IF;
     8  9   <<labelPrint>>
    10   NULL; --不需要处理任何数据。
    11 END;

    例15:

     1 DECLARE
     2    v_emp_id employees.employee_id%TYPE;
     3    v_first_name employees.first_name%TYPE;
     4    v_salary employees.salary%TYPE;
     5    v_sal_raise NUMBER(3,2);
     6 BEGIN
     7    v_emp_id := &emp_id;
     8    SELECT first_name, salary INTO v_first_name, v_salary
     9    FROM employees WHERE employee_id = v_emp_id;
    10    IF v_salary <= 3000 THEN
    11       v_sal_raise := .10;
    12       DBMS_OUTPUT.PUT_LINE(v_first_name||'的工资是'||v_salary
    13                                        ||'、工资涨幅是'||v_sal_raise);
    14    ELSE
    15       NULL;
    16    END IF;
    17 END;
  • 相关阅读:
    【win7】安装开发环境
    【php-fpm】启动PHP报错ERROR: [pool www] cannot get uid for user 'apache'
    【apache2】AH00543: httpd: bad user name apache
    【gedit】 显示行号
    关于golang.org/x包问题
    国内的go get问题的解决
    php7函数,声明,返回值等新特性介绍
    php5.6.x到php7.0.x特性
    PHP5.4.0新特性研究
    【git】如何去解决fatal: refusing to merge unrelated histories
  • 原文地址:https://www.cnblogs.com/anzhi/p/7568381.html
Copyright © 2011-2022 走看看