Oracle 起步日記(6)——存儲過程

1、  創建無參數過程

 

CREATE OR REPLACE PROCEDURE output_time

IS

BEGIN

       DBMS_SESSION.SET_NLS(‘NLS_DATE_FORMAT’,’’’yyyy-mm-dd hh24:mi:ss’’’);

       DBMS_OUTPUT.PUT_LINE(SYSDATE);

END;

 

2、  創建帶輸入參數的過程

 

CREATE OR REPLACE PROCEDURE add_student(id student.id%TYPE ,name student.name%TYPE)

IS

BEGIN

       INSERT INTO student

       VALUES(id,name);

END;

 

只要在過程中插入數據的字段順序是對的,參數的順序並不要求與表中字段的順序一致

 

3、  創建帶有輸入輸出參數的過程

 

CREATE OR REPLACE PROCEDURE divide(num1 IN OUT NUMBER,num2 IN OUT NUMBER)

IS

       ver1 NUMBER;

       ver2 NUMBER;

BEGIN

       ver1 := TRUNC(num1/num2);

       ver2 := MOD(num1,num2);

       num1 := ver1;

       num2 := ver2;

END;

 

以下是調用並輸出了過程後的數據

 

DECLARE

       n1 NUMBER := &n1;

       n2 NUMBER := &n2;

BEGIN

       divide(n1,n2);

       DBMS_OUTPUT.PUT_LINE('商:' || n1 || ',餘數爲' || n2);

END;

 

4、  維護過程

維護過程包括:刪除、顯示編譯錯誤、編譯過程、查看過程代碼等

a)         ALTER PROCEDURE divide COMPILE;          ——重新編譯過程

b)        SELECT TEXT FROM USER_SOURCE WHERE NAME = ‘DIVIDE’;           ——查詢數據字典USER_SOURCE看源代碼

c)        SHOW ERRORS;          ——查看過程中的錯誤

d)        DROP PROCEDURE divide;

發佈了28 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章