zoukankan      html  css  js  c++  java
  • orcale 之 存储过程

      之前我们学习过 PL/SQL, 那么当我们的工作中我们通过 PL/SQL 做很多的事情,那么有一个问题,在每次的座同样一件事的时候是不是都需要重新通过 PL/SQL 去完成呢?可不可以只写一次然后,在以后需要的时候调用它呢?答案当然是肯定的了。我们把这个东西就叫做存储过程(PROCEDURE)。

    创建

      创建存储过程的语法如下:

    CREATE [OR REPLACE] PROCEDURE <过程名>
        (<参数1>, [方式1] <数据类型1>,
         <参数2>, [方式2] <数据类型2>       
        ......
        )
    IS|AS
    PL/SQL 主体部分;

      例如查看 emp 表中用户的个数:

    create or replace procedure test_count
    is
    v_total number(2);
    begin
      select count(*) into v_total from emp;
      DBMS_OUTPUT.put_line('总人数:'||v_total);
    end;

    调用

      调用存储过程的命令是 EXECUTE。执行上面我们创建的存储过程查看 emp 表员工的数量。

    EXECUTE test_count();

    删除

      当不需要的时候可以将其删除:

    DROP PROCEDURE <name>;

    --删除刚才创建的存储过程
    DROP PRODECURE test_count;

    存储过程中类型参数的传递

      1. in 类型

        这是一个输入类型,表示将这个参数输入给存储过程。

    create or replace procedure double(in_num in NUMBER, out_num out NUMBER) is
    begin
      out_num:=in_num * 2;
    end double;

      2. out 类型

        这是一个输出类型,意思就是这个参数在存储过程中被赋值,最后将其传递出去。

      3. in out 类型

        这个类型就是上面提到两种类型的综合版本。

    create or replace procedure double2(in_out_num in out NUMBER) is
    begin
      in_out_num:=in_out_num * 2;
    end double2;

      以上只是对存储过程的一些概念有了基本的了解,特别适合我们上手做一些东西,当然以后会对其有更加详细的介绍大家继续关注哦!

  • 相关阅读:
    hdu5886Tower Defence(树形dp)
    hdu5893 List wants to travel(树链剖分+线段树)
    hdu5884 Sort(二分)
    hdu3559 Frost Chain (概率dp+记忆化搜索)
    hdu5790 Prefix(Trie树+主席树)
    tp5 cache 子文件夹名称
    resize 计算尺寸不正确
    Destoon Global 全局函数对应表
    MySQL语法大全
    myslq 表与表之前的数据转移
  • 原文地址:https://www.cnblogs.com/brother-four/p/6486732.html
Copyright © 2011-2022 走看看