【存儲過程】Oracle 11g

一、使用到的關鍵字

  1. create or replace
    創建或替換
  2. procedure
    存儲過程
  3. AS
    關鍵字
  4. begin
    關鍵字
  5. end
    關鍵字
  6. dbms_output.put_line(’’);
    輸出語句
  7. 調用

(1):第一種方式

 BEGIN
	存儲過程名();
 END;

(2):第二種方式

 DECLARE
	變量
 BEGIN
	存儲過程名();
 END;
  1. IN
    輸入
  2. OUT
    輸出

二、實戰階段

  1. 輸出一個 hell world!
  • 語句
      CREATE OR REPLACE PROCEDURE TEST0
        AS
      BEGIN
        DBMS_OUTPUT.PUT_LINE('HELLO WORD!');
      END;
  • 調用
    BEGIN
       TEST0();
    END;
  • 結果

在這裏插入圖片描述

  1. 帶變量的存儲過程
  • 語句
CREATE OR REPLACE PROCEDURE TEST1
  AS
  ONE VARCHAR(100);
BEGIN
  ONE:='hello world!';
  DBMS_OUTPUT.PUT_LINE('ONE='||ONE);
END;
  • 調用
BEGIN
  TEST1();
END;
  • 結果

在這裏插入圖片描述

  1. 帶參數的存儲過程
  • 語句
CREATE OR REPLACE PROCEDURE TEST2(NAME IN VARCHAR,AGE IN INT)
  AS
BEGIN
  DBMS_OUTPUT.PUT_LINE('NAME='||NAME||', AGE='||AGE);
END;
  • 調用
DECLARE
  NAME VARCHAR(100);
  AGE INT;
BEGIN
  NAME:='小明';
  AGE:=12;
  TEST2(NAME,AGE);
END;
  • 結果

在這裏插入圖片描述

4、出參存儲過程

  • 語句
CREATE OR REPLACE PROCEDURE TEST4(NAME OUT VARCHAR)
 AS
BEGIN
  SELECT '小明' INTO NAME FROM DUAL;
END;
  • 調用
DECLARE
  NAME VARCHAR(100);
BEGIN
  TEST4(NAME=>NAME);
  DBMS_OUTPUT.PUT_LINE('NAME='||NAME);
END;
  • 結果

在這裏插入圖片描述
5. FOR循環

  • 語句
CREATE OR REPLACE PROCEDURE TEST5
 AS
 I INT;
 J INT;
BEGIN
 I:=0;
 J:=0;
FOR I IN 1..9 LOOP
    FOR J IN 1..I LOOP
        DBMS_OUTPUT.PUT(I||'*'||J||'='||I*J);
        DBMS_OUTPUT.PUT(' ');
    END LOOP;
    DBMS_OUTPUT.NEW_LINE;
END LOOP;
END;
  • 調用
BEGIN
  TEST5();
END;
  • 結果

在這裏插入圖片描述
6. WHILE循環

  • 語句
CREATE OR REPLACE PROCEDURE TEST6
 AS
 I INT;
 J INT;
BEGIN
 I:=0;
 J:=0;
 WHILE I<=9 LOOP
   J:=1;
   WHILE J<=I LOOP
     DBMS_OUTPUT.PUT(I||'*'||J||'='||I*J);
     DBMS_OUTPUT.PUT(' ');
     J:=J+1;
     END LOOP;
        DBMS_OUTPUT.NEW_LINE;
        I:=I+1;
 END LOOP;
END;
  • 調用
BEGIN
  TEST6();
END;
  • 結果
    在這裏插入圖片描述
  1. LOOP循環
  • 語句
CREATE OR REPLACE PROCEDURE TEST7
 AS
 I INT;
 J INT;
BEGIN
 I:=0;
 J:=0;
 LOOP
   LOOP
     DBMS_OUTPUT.PUT(I||'*'||J||'='||I*J);
     DBMS_OUTPUT.PUT('  ');
     J:=J+1;
     EXIT WHEN J>I;
   END LOOP;
     DBMS_OUTPUT.PUT_LINE('');
     I:=I+1;
     J:=1;
  EXIT WHEN I>9;
 END LOOP;
END;
  • 調用
BEGIN
  TEST7();
END;
  • 結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章