码迷,mamicode.com
首页 > 数据库 > 详细

oracle存储过程

时间:2016-11-17 20:18:45      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:_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         employees
10     WHERE
11         department_id = p_deptno ; dbms_output.put_line (
12             p_deptno || average salary is : || v_sal
13         ) ; FOR v_emp IN (
14             SELECT
15                 *
16             FROM
17                 employees
18             WHERE
19                 department_id = p_deptno
20             AND salary > v_sal
21         ) loop DBMS_OUTPUT.PUT_LINE (
22             v_emp.employee_id || ‘‘ || v_emp.first_name ||   || v_emp.last_name
23         ) ;
24     END loop ; EXCEPTION
25     WHEN no_data_found THEN
26         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_count
11     FROM
12         employees
13     WHERE
14         department_id = p_deptno ; EXCEPTION
15     WHEN NO_data_found THEN
16         dbms_output.put_line (hahhaha) ;
17     END proc_return_deptinfo ;

3.pl/sql调用存储过程

1 SET SERVEROUTPUT ON
2 DECLARE 
3 v_avgsal EMPLOYEES.SALARY % TYPE ; 
4 v_count NUMBER ;
5 BEGIN
6     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存储过程

标签:_id   ace   rtm   turn   特定   函数   style   loop   roc   

原文地址:http://www.cnblogs.com/kamil/p/6074731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!