oracle預存程序

來源:互聯網
上載者:User

標籤:處理常式   多個   out   建立   div   處理   server   通過   others   

在 ORACLE SERVER上建立預存程序,可以被多個應用程式調用,可以向預存程序傳遞參數,也可以向預存程序傳回參數 

建立預存程序文法 :
CREATE [OR REPLACE] PROCEDURE Procedure_name
[ (argment [ { IN | OUT | IN OUT } ] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
{ IS | AS }
<類型.變數的說明>
BEGIN
<執行部分>
EXCEPTION
<可選的異常錯誤處理程式>
END;


例 :

 1 CREATE OR REPLACE PROCEDURE DelEmp 2   (v_empno IN emp.empno%TYPE)  3 AS 4   No_result EXCEPTION; 5 BEGIN 6   DELETE FROM emp WHERE empno=v_empno; 7   IF SQL%NOTFOUND THEN 8     RAISE no_result; 9 END IF;10   DBMS_OUTPUT.PUT_LINE(‘編碼為‘||v_empno||‘的員工已被除名!‘);11 EXCEPTION12   WHEN no_result THEN 13   DBMS_OUTPUT.PUT_LINE(‘你需要的資料不存在!‘);14   WHEN OTHERS THEN15   DBMS_OUTPUT.PUT_LINE(SQLCODE||‘---‘||SQLERRM);16 END DelEmp;

 


調用預存程序
預存程序建立完成後,只要通過授權,使用者就可以在SQLPLUS 、ORACLE開發工具或第三方開發工具中來調用運行。
ORACLE 使用EXECUTE 語句來實現對預存程序的調用:
EXEC[UTE] Procedure_name( parameter1, parameter2…)


例:

CREATE OR REPLACE PROCEDURE proc_demo  (Dept_no NUMBER DEFAULT 10 , Sal_sum OUT NUMBER,  Emp_count OUT NUMBER)ISBEGIN  SELECT SUM(sal), COUNT(*) INTO sal_sum, emp_count   FROM emp WHERE deptno=dept_no;EXCEPTION  WHEN NO_DATA_FOUND THEN   DBMS_OUTPUT.PUT_LINE(‘你需要的資料不存在!‘);  WHEN OTHERS THEN   DBMS_OUTPUT.PUT_LINE(SQLCODE||‘---‘||SQLERRM);END proc_demo; 

 


調用方法:

DECLARE  V_num NUMBER;  V_sum NUMBER(8, 2);BEGIN  Proc_demo(30, v_sum, v_num);  DBMS_OUTPUT.PUT_LINE(‘30號部門工資總和:‘||v_sum||‘,人數:‘||v_num);  Proc_demo(sal_sum => v_sum, emp_count => v_num);  DBMS_OUTPUT.PUT_LINE(‘10號部門工資總和:‘||v_sum||‘,人數:‘||v_num);END;

 


刪除過程
可以使用DROP語句刪除過程:
DROP PROCEDURE proceduer_name;

 

 

 

oracle預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.