PL/SQL -- 存储过程

本文详细介绍了PL/SQL中的存储过程,包括创建、调用、参数类型及管理。通过实例展示了如何定义带有不同参数模式的过程,并演示了如何处理参数、查看和删除存储过程。
摘要由CSDN通过智能技术生成
               

--=====================

-- PL/SQL --> 存储过程

--=====================

 

     存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。是一个有名字的PL/SQL代码块,支持接收或不接受参数

,同时也支持参数输出。一个存储过程通常包含定于部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用。

 

一、过程定义

     CREATE OR REPLACEPROCEDURE procedure_name

     [(argument_name [IN | OUT | IN OUT] argument_type)]

     AS | IS

     BEGIN

         procedure_body;

     END [procedure_name];

    

     存储过程中参数的类型

         IN:表示是一个输入参数,可以指定缺省值。如省略参数类型,则缺省为in类型

         OUT:表示是一个输出参数

         IN OUT:既可以作为一个输入参数,也可以作为一个输出参数来输出结果

        

二、过程调用

         EXECUTE CALL procedure_name [(argument_list)]

 

     --例:定义一个过程,以JOB为参数,查询该JOB的最高工资、最低工资、平均工资。

 

         CREATE OR REPLACE PROCEDURE display_sal(v_job emp.job%TYPE)   --该形参缺省为in类型,数据类型为emp.job%TYPE

         AS

              v_avg_sal emp.sal%TYPE;

              v_max_sal emp.sal%TYPE;

              v_min_sal emp.sal%TYPE;

         BEGIN

              SELECT avg(sal) INTO v_avg_sal FROM emp WHERE job=v_job;

              SELECT max(sal) INTO v_max_sal FROM emp WHERE Job=v_job;

              SELECT min(sal) INTO v_min_sal FROM emp WHERE job=v_job;

 

              DBMS_OUTPUT.PUT_LINE('DEPT '||v_job||' avg sal:'||v_avg_sal);

              DBMS_OUTPUT.PUT_LINE('DEPT '||v_job||' max sal:'||v_max_sal);

              DBMS_OUTPUT.PUT_LINE('DEPT '||v_job||' min sal:'||v_min_sal);

             

         EXCEPTION

              WHEN NO_DATA_FOUND THEN

                   DBMS_OUTPUT.PUT_LINE('NOT FOUND RECORD!');

         END display_sal;

         /

 

         scott@ORCL> set serveroutput on;

         scott@ORCL> exec display_sal('SALESMAN');

         DEPT SALESMAN avg sal:1400

         DEPT SALESMAN max sal:1600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值