oracle預存程序

來源:互聯網
上載者:User

標籤:_id   ace   rtm   turn   特定   函數   style   loop   roc   

1.預存程序定義

儲存程式 (Stored Procedure),又可稱預儲程式或者預存程序,是一種在資料庫中儲存複雜程式,
以便外部程式調用的一種資料庫物件,它可以視為資料庫中的一種函數或子程式。--維基百科

儲存子程式是指被命名的PL/SQL 塊,以編譯的形式儲存在資料庫伺服器中,可以在應用程式中進行調用,是PL/SQL程式模組化的一種體現。Pl/SQL中的儲存子程式包括預存程序和(儲存)函數兩種。通常預存程序用於執行特定的操作,不需要傳回值;而函數則用於返回特定的資料。在調用時,預存程序可以作為一個獨立的運算式被調用,而甘肅只能作為運算式的一個組成部分被調用。

 

1.編寫預存程序無參數

 1 CREATE 2 OR REPLACE PROCEDURE proc_show_emp ( 3     p_deptno EMPLOYEES.DEPARTMENT_ID % TYPE 4 ) AS v_sal EMPLOYEES.SALARY % TYPE ; 5 BEGIN 6     SELECT 7         AVG (salary) INTO v_sal 8     FROM 9         employees10     WHERE11         department_id = p_deptno ; dbms_output.put_line (12             p_deptno || ‘average salary is :‘ || v_sal13         ) ; FOR v_emp IN (14             SELECT15                 *16             FROM17                 employees18             WHERE19                 department_id = p_deptno20             AND salary > v_sal21         ) loop DBMS_OUTPUT.PUT_LINE (22             v_emp.employee_id || ‘‘ || v_emp.first_name || ‘ ‘ || v_emp.last_name23         ) ;24     END loop ; EXCEPTION25     WHEN no_data_found THEN26         DBMS_OUTPUT.PUT_LINE (‘ehhhee‘) ;27     END proc_show_emp ;

2.編寫預存程序*(有參數)

 1 CREATE 2 OR REPLACE PROCEDURE proc_return_deptinfo ( 3     p_deptno EMPLOYEES.DEPARTMENT_ID % TYPE, 4     p_avgsal out employees.salary % TYPE, 5     p_count out NUMBER 6 ) AS 7 BEGIN 8     SELECT 9         AVG (salary) ,count (*) INTO p_avgsal,10         p_count11     FROM12         employees13     WHERE14         department_id = p_deptno ; EXCEPTION15     WHEN NO_data_found THEN16         dbms_output.put_line (‘hahhaha‘) ;17     END proc_return_deptinfo ;

3.pl/sql調用預存程序

1 SET SERVEROUTPUT ON2 DECLARE 3 v_avgsal EMPLOYEES.SALARY % TYPE ; 4 v_count NUMBER ;5 BEGIN6     proc_show_emp (20) ; 7     PROC_RETURN_DEPTINFO (10, v_avgsal, v_count) ; 8     dbms_output.put_line (v_avgsal || ‘ ‘ || v_count) ;9 END ;

環境oracle11R2 預設HR

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.