一、使用到的關鍵字
- create or replace
創建或替換 - procedure
存儲過程 - AS
關鍵字 - begin
關鍵字 - end
關鍵字 - dbms_output.put_line(’’);
輸出語句 - 調用
(1):第一種方式
BEGIN
存儲過程名();
END;
(2):第二種方式
DECLARE
變量
BEGIN
存儲過程名();
END;
- IN
輸入 - OUT
輸出
二、實戰階段
- 輸出一個 hell world!
- 語句
CREATE OR REPLACE PROCEDURE TEST0
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO WORD!');
END;
- 調用
BEGIN
TEST0();
END;
- 結果
- 帶變量的存儲過程
- 語句
CREATE OR REPLACE PROCEDURE TEST1
AS
ONE VARCHAR(100);
BEGIN
ONE:='hello world!';
DBMS_OUTPUT.PUT_LINE('ONE='||ONE);
END;
- 調用
BEGIN
TEST1();
END;
- 結果
- 帶參數的存儲過程
- 語句
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;
- 結果
- 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;
- 結果