• Oracle存储过程


    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

      

  • 相关阅读:
    Centos7 Apache 2.4.18编译安装
    Centos7 mysql-community-5.7.11编译安装
    Centos7 安装MPlayer过程详解
    Vmware虚拟机克隆的网卡问题
    虚拟机VMware新增硬盘无法识别问题
    python推导式
    Python迭代器和生成器
    Python装饰器
    Python函数初识二
    Python函数初识
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11630208.html
Copyright © 2020-2023  润新知