zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    fill & stroke
    UIView 中 hidden、alpha、clear color 与 opaque 的区别
    图像处理之_仿射变换与透视变换
    GPU性能:光栅化、图层混合、离屏渲染
    PHP开发api接口安全验证的实例,值得一看
    svn钩子(hooks)自动部署代码到web目录
    linux安装配置SVN并设置钩子
    使用Navicat for MySQL把本地数据库上传到服务器
    svn upgrade
    QQ分享 QQ空间分享 API链接:
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11630208.html
Copyright © 2011-2022 走看看