Oracle存储过程的使用DEMO(一)

Oracle存储过程的使用DEMO(一)

1. Oracle中块的使用

在这里插入图片描述

DECLARE
  I NUMBER;
BEGIN
  SELECT EMPNO FETCH INTO I FROM EMP WHERE ENAME='SMITH';
  DBMS_OUTPUT.PUT_LINE(I);
END;

在这里插入图片描述

2. IF使用

2.1 IF…ELSE…

DECLARE
  I NUMBER := 9;
BEGIN
  --I := 10;
  IF I = 10 THEN
    DBMS_OUTPUT.PUT_LINE('10');
  ELSIF I = 9 THEN
    DBMS_OUTPUT.PUT_LINE('9');
  ELSE
    DBMS_OUTPUT.PUT_LINE('HEHE');
  END IF;
END;

在这里插入图片描述

2.2 IF嵌套

DECLARE
  I NUMBER := 5;
BEGIN
  IF I < 7 THEN
    DBMS_OUTPUT.PUT_LINE('Y');
    IF I < 6 THEN
      DBMS_OUTPUT.PUT_LINE('A');
     END IF;
  ELSIF I < 8 THEN
    DBMS_OUTPUT.PUT_LINE('N');
  ELSE
    DBMS_OUTPUT.PUT_LINE('EE');
  END IF;
END;

在这里插入图片描述

3. CASE…WHEN…

DECLARE
  L_DAY NUMBER := 2;
BEGIN
  CASE WHEN L_DAY < 2 THEN DBMS_OUTPUT.PUT_LINE('MON');
       WHEN L_DAY < 3 THEN DBMS_OUTPUT.PUT_LINE('TUE');
       WHEN L_DAY < 4 THEN DBMS_OUTPUT.PUT_LINE('WED');
       ELSE DBMS_OUTPUT.PUT_LINE('HAHA');
   END CASE; 
END;

在这里插入图片描述

4. LOOP

从1开始,每循环一次加1输出,知道10时候停止

  1. 使用when退出
DECLARE
  I NUMBER := 1;
BEGIN
  LOOP
    I := I + 1;
    DBMS_OUTPUT.PUT_LINE(I);
    EXIT WHEN I=10;
  END LOOP;
END;

在这里插入图片描述
2. 使用if退出

DECLARE
  I NUMBER := 1;
BEGIN
  LOOP
    I := I + 1;
    DBMS_OUTPUT.PUT_LINE(I);
    IF I = 10 THEN
      EXIT;
    END IF;
  END LOOP;
END;

在这里插入图片描述

5. WHILE

打印出1到10的值

DECLARE
  I NUMBER := 1;
BEGIN
  WHILE I <= 10 LOOP
    DBMS_OUTPUT.PUT_LINE(I);
    I := I + 1;
  END LOOP;
END;

在这里插入图片描述

6. FOR

  1. 打印1到10
DECLARE
  I NUMBER;
BEGIN
  FOR I IN 1..10 LOOP
    DBMS_OUTPUT.PUT_LINE(I);
  END LOOP;
END;

在这里插入图片描述

  1. 打印10到1
DECLARE
  I NUMBER;
BEGIN
  FOR I IN REVERSE 1..10 LOOP
    DBMS_OUTPUT.PUT_LINE(I);
  END LOOP;
END;

在这里插入图片描述