首页 > 数据库技术 > 详细

Oracle存储过程

时间:2019-10-07 14:24:44      阅读:92      评论:0      收藏:0      [点我收藏+]

1、作用

    a、在开发中,为了一个特定的业务功能,会向数据库进行多次连接关闭(连接和关闭是很耗资源),需要对数据库进行多次I/O读写,性能比较低。如果把这些业务放入

  存储过程中,就可以做到连接关闭一次数据库就可以实现业务,可以大大的提高效率。

    b、Oracle官方建议,能够让数据库操作的不要放在程序中,在数据库中实现基本上不会出现错误,在程序中操作可能会存在错误。(如果在数据库中操作,可以有一定

  的日志恢复功能。)

2、语法

  CREATE OR REPLACE PROCEDURE 存储过程名称[(参数列表)] IS

  BEGIN

  END 存储过程名称;

 

  根据参数的类型,可以分为3类

  a、不带参数

  b、带输入参数

  c、带输入输出参数(返回值)

3、无参存储

技术分享图片
create or replace procedure p_hello as
--声明变量
begin
    dbms_output.put_line(Hello World!);
end p_hello ;
View Code

 

调用 在plsql中可以直接在begin end中直接写存储过程名,或者在命令窗口中执行 exec 存储过程名;。

  注意:

    a、is和as是可以相互用的

    b、过程中没有declare关键字,declare用在语句块中

4、带输入参数存储

技术分享图片
create or replace procedure p_queryName(i_empno in emp.empno%type) as
--声明变量
v_name emp.ename%type;
v_sal emp.sal%type;
begin
    --查询emp表中对应员工的信息
    select ename,sal into v_name,v_sal from emp where empno=i_empno;
    dbms_output.put_line(名称:||v_name||薪水:||v_sal);
end p_queryName;
View Code

5、带输入输出参数存储

技术分享图片
create or replace procedure p_querySalOut(i_empno in emp.empno%type,o_sal out emp.sal%type) as
--声明变量
begin
    --查询emp表中对应员工的信息
    select sal into o_sal from emp where empno=i_empno;
    dbms_output.put_line(名称:||v_name||薪水:||v_sal);
end p_querySalOut;
View Code

 调用

技术分享图片
declare
--声明变量接受存储过程中的输出参数
    v_sal emp.sal%type;
begin
    p_querySalOut(7839,v_sal);
    dbms_output.put_line(v_sal);
end;
View Code

 

  

Oracle存储过程

原文:https://www.cnblogs.com/ZJ199012/p/11630208.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!