PLSQL创建存储过程

PLSQL创建存储过程

ID:38203280

大小:151.62 KB

页数:8页

时间:2019-06-07

PLSQL创建存储过程_第1页
PLSQL创建存储过程_第2页
PLSQL创建存储过程_第3页
PLSQL创建存储过程_第4页
PLSQL创建存储过程_第5页
资源描述:

《PLSQL创建存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、子程序的介绍:•命名的 PL/SQL 块,能够接受传递的参数,能够被调用。•子程序的类型 过程:用于执行某项操作 函数:用于执行某项操作并返回值•基于标准的PL/SQL块结构  声明部分 可执行部分 异常部分(可选)优点:–模块化将程序分解为多个逻辑模块–可重用性子程序在被执行之后,被存储在数据库中,可以在任意数目的应用程序中使用–可维护性 子程序简化了维护–提高性能用户直接使用共享池中解析后的程序存储过程:•命名的PL/SQL块•能够接受参数•能够被重复调用•用于执行某项操作•存储在数据库中形式参数与实际

2、参数形式参数:在子程序说明的参数列表中声明的变量  CREATEPROCEDUREraise_sal( p_idNUMBER, p_amountNUMBER) ... ENDraise_sal;•实际参数:在子程序被调用的参数列表中引用的变量或表达式  raise_sal(v_id,2000)创建带参数的过程参数模式IN是默认的参数模式。换句话说,如果未指定一个参数的模式,该参数就被认为是一个IN参数。参数模式OUT和INOUT必须在参数的前面被明确指定。一个IN模式的形式参数不能被指定一个值,就是说,一个

3、在过程体中的IN参数不能被修改。一个OUT或INOUT参数在返回主叫环境之前必须被指定一个值。IN参数可以在参数列表中被指定一个默认值。OUT和INOUT参数不能被指定默认值。默认情况下IN参数是引用传递,而OUT和INOUT参数是值传递。1.create  or replace  procedure raise_sal  2.(p_id   in emp.empno%type,  3. p_name out  varchar2,  4. p_sal  out   number)  1. Is  2. be

4、gin  3.   select sal,ename into p_sal,p_name  4.   from emp  5.   where  empno = p_id;  6.end raise_sal;  1.DECLARE  2.    v_sal   emp.sal%type;  3.    v_name  emp.ename%type;  4.BEGIN  5.    raise_sal(7369,v_sal,v_name);  6.    dbms_output.put_line('雇员:'

5、

6、

7、v_name

8、

9、'的薪水是 '

10、

11、v_sal);  7.END;  声明主机变量,执行raise_sal过程1.VARIABLE g_sal NUMBER  2.VARIABLE g_name VARCHAR2(25)  3.EXEC raise_sal(7369,:g_name,:g_sal)  用VARIABLE命令创建主机变量。调用raise_sal过程,提供这些主机变量作为OUT参数。在EXECUTE命令中引用主机变量时,注意冒号(:)的使用。 传递参数的方法•位置:实际参数与形式参数排列的顺序相

12、同•指定:实际参数联合其相应的形式参数以任意顺序排列•组合:实际参数的排列一些用位置,一些用指定 1.CREATE OR REPLACE PROCEDURE raise_sal  2.(p_id   IN    emp.empno%type default 7369,   3. p_name OUT   varchar2 ,  4. p_sal  IN OUT  number )  5.IS  1.BEGIN  2.    UPDATE emp   3.    SET   sal = sal + p_sal

13、   4.    WHERE empno = p_id;  5.      6.    SELECT sal,ename INTO p_sal,p_name   7.    FROM   emp  8.    WHERE  empno = p_id;  9.END raise_sal;  异常处理:当一个异常发生时,控制立即转向块的异常部分。如果异常被处理,块终止运行,并且控制转向主叫程序。1.CREATE OR REPLACE PROCEDURE test1  2.IS  3.    v_deptno  

14、       dept.deptno%type;  4.BEGIN  5.    insert into dept values(60,'nuc','kitty');  6.    select deptno into v_deptno from dept  7.    where deptno=99;  8.EXCEPTION  9.    WHEN NO_DATA_FOUND THEN  10.       

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。