PL/SQL轻量版(二)——基本语法

一、流程控制

  1.条件判断

  语法:

IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSE
其它语句
END IF;

  // 请注意ELSIF而不是ELSEIF!

  示例:

DECLARE
V_sal employees.salary%type;
BEGIN
SELECT salary INTO V_sal
FROM employees
WHERE employee_id = 100;
IF V_sal > 10000
THEN dbms_output.put_line('工资大于1万');
ELSIF V_sal > 5000
THEN dbms_output.put_line('工资大于5千');
ELSE
dbms_output.put_line('工资小于5千');
END IF;
END;

  CASE表达式:

CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END;

  2.循环

    基本循环

LOOP
Sequence of statements;
END LOOP;

 也可以使用EXIT WHEN进行退出:

LOOP
stmt;
exit WHEN x > 50;
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE
v_i NUMBER(3) := 1;
BEGIN
LOOP
dbms_output.put_line(v_i);
-- v_i = v_i + 1;
EXIT WHEN v_i >= 10;
v_i := v_i + 1;
END LOOP;
END;

    WHILE循环

WHILE condition LOOP
sequence_of_statements
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE
v_i NUMBER(3) := 1;
BEGIN
WHILE v_i <= 10 LOOP
dbms_output.put_line(v_i);
v_i := v_i + 1;
END LOOP;
END;

    FOR循环

FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;

  示例:

--包含初始化条件、循环体、循环条件、迭代条件
DECLARE BEGIN
FOR c IN 1..10 LOOP --c会自动++
dbms_output.put_line(c);
END LOOP;
END;

  3.GOTO

PL/SQL 中 GOTO 语句是无条件跳转到指定的标号去的意思。语法如下:
GOTO label;
----------------------------------------------------
<<label>> /*标号是用<< >>括起来的标识符 */

  4.空处理NULL

BEGIN

IF v_num IS NULL THEN
GOTO print1;
END IF;

<<print1>>
NULL; -- 不需要处理任何数据。
END;
上一篇:JSONP - 跨域AJAX


下一篇:springboot+websocket+sockjs进行消息推送【基于STOMP协议】