精华内容
下载资源
问答
  • oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!
  • oracle中函数和存储过程区别和联系  在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点。刚学完函数和存储过程,下面来大家分享一下自己总结的关于函数和存储过程的...

    oracle中函数和存储过程的区别和联系

      在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点。刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别。

    一、存储过程

    1.定义

      存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure。

    2.创建存储过程

      create [or replace] procedure 存储过程名

      [(参数1 类型,参数2 out 类型……)]                                       

      as

        变量名  类型;

      begin

        程序代码体

      end;

      示例一:无参无返

    复制代码
    create or replace procedure p1
    --or replace代表创建该存储过程时,若存储名存在,则替换原存储过程,重新创建
    --无参数列表时,不需要写()
    as
    begin
      dbms_output.put_line('hello world');
    end;
    
    --执行存储过程方式1
    set serveroutput on;
    begin
      p1();
    end;
    --执行存储过程方式2
    set serveroutput on;
    execute p1();
    复制代码

      示例二:有参有返

    复制代码
    create or replace procedure p2
    (name in varchar2,age int,msg out varchar2)
    --参数列表中,声明变量类型时切记不能写大小,只写类型名即可,例如参数列表中的name变量的声明
    --参数列表中,输入参数用in表示,输出参数用out表示,不写时默认为输入参数。
    ------------输入参数不能携带值出去,输出参数不能携带值进来,当既想携带值进来,又想携带值出去,可以用in out
    as
    begin
      msg:='姓名'||name||',年龄'||age;
      --赋值时除了可以使用:=,还可以用into来实现
      --上面子句等价于select '姓名'||name||',年龄'||age into msg from dual;
    end;
    --执行存储过程
    set serveroutput on;
    declare
      msg varchar2(100);
    begin
      p2('张三',23,msg);
      dbms_output.put_line(msg);
    end;
    复制代码

     

      示例三:参数列表中有in out参数

    复制代码
    create or replace procedure p3
    (msg in out varchar2)
    --当既想携带值进来,又想携带值出去,可以用in out
    as
    begin
      dbms_output.put_line(msg); --输出的为携带进来的值
      msg:='我是从存储过程中携带出来的值';
    end;
    
    
    --执行存储过程
    set serveroutput on;
    declare
      msg varchar2(100):='我是从携带进去的值';
    begin
      p3(msg);
      dbms_output.put_line(msg);
    end;
    复制代码

       示例四:存储过程中定义参数

    复制代码
    create or replace procedure p4
    as
      --存储过程中定义的参数列表
      name varchar(50);
    begin
      name := 'hello world';
      dbms_output.put_line(name);
    end;
    ---执行存储过程
    set serveroutput on;
    execute p4();
    复制代码

     

     总结:1.创建存储过程的关键字为procedure。

          2.传参列表中的参数可以用in,out,in out修饰,参数类型一定不能写大小。列表中可以有多个输入输出参数。

          3.存储过程中定义的参数列表不需要用declare声明,声明参数类型时需要写大小的一定要带上大小。

        4.as可以用is替换。

          5.调用带输出参数的过程必须要声明变量来接收输出参数值。

          6.执行存储过程有两种方式,一种是使用execute,另一种是用begin和end包住。

          存储过程虽然有很多优点,但是它却不能使用return返回值。当需要使用return返回值时,我们可以使用函数。

     

    二、存储函数

    1.函数与存储过程的结构类似,但是函数必须有一个return子句,用于返回函数值。

    复制代码
    create or replace function f1
    return varchar--必须有返回值,且声明返回值类型时不需要加大小
    as
      msg varchar(50);
    begin
       msg := 'hello world';
       return msg;
    end;
    
    --执行函数方式1
    select f1() from dual;
    --执行函数方式2
    set serveroutput on;
    begin 
      dbms_output.put_line(f1());
    end;
    复制代码

     

     

     三、存储过程与存储函数的区别和联系

      相同点:1.创建语法结构相似,都可以携带多个传入参数和传出参数。

              2.都是一次编译,多次执行。

      不同点:1.存储过程定义关键字用procedure,函数定义用function。

          2.存储过程中不能用return返回值,但函数中可以,而且函数中必须有return子句。

          3.执行方式略有不同,存储过程的执行方式有两种(1.使用execute2.使用begin和end),函数除了存储过程的两种方式外,还可以当做表达式使用,例如放在select中(select f1() form dual;)。

    总结:如果只有一个返回值,用存储函数,否则,一般用存储过程。

     

    展开全文
  • MySQL存储函数和存储过程区别

    千次阅读 2017-11-22 13:53:08
    1:存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,而函数的实现功能针对性比较强 2:返回值不同 存储...
    存储过程与存储函数的区别
    1:存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,而函数的实现功能针对性比较强
    2:返回值不同
    存储函数必须有返回值,且仅返回一个结果值
    存储过程可以没有返回值,但是能返回结果集(out,inout)
    3:调用时的不同
    存储函数嵌入在SQL中使用,可以在select 存储函数名(变量值);
    存储过程通过call语句调用 call 存储过程名
    4:参数的不同
    存储函数的参数类型类似于IN参数
    存储过程的参数类型有三种
    1: in 数据只是从外部传入内部使用(值传递),可以是数值也可以是变量
    2: out 只允许过程内部使用(不用外部数据),给外部使用的(引用传递:外部的数据会被先清空才会进入到内部),只能是变量
    3: inout 外部可以在内部使用,内部修改的也可以给外部使用,典型的引用 传递,只能传递变量



    展开全文
  • 主要给大家介绍了关于MySQL自定义函数和存储过程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 主要介绍了oracle中存储函数存储过程区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  •  如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数; 从调用情况来看:  如果在SQL语句(DML或SELECT)中调用的话一定是函数不可以是存储过程 函数一般情况下是用来计算并返回一个计算...

    从参数的返回情况来看:
         如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
    从调用情况来看:
         如果在SQL语句(DML或SELECT)中调用的话一定是函数不可以是存储过程

    函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等

    展开全文
  • 存储函数存储过程

    2016-08-05 17:42:26
    存储函数存储过程
  • 存储过程和存储函数区别: 他们本身没有本质的区别 函数存在的意义是给过程调用的,存储过程里面调用存储函数 函数在SQL语句中,可以直接调用 存储过程能够实现的,存储函数也能够实现, 反之.存储函数能够实现的,...

    存储函数:  

         实际上是一段封装在Oracle服务器中的一段PLSQL代码片段,它是已经编译好的代码片段.

    存储过程和存储函数的区别:

    1. 他们本身没有本质的区别
    2. 函数存在的意义是给过程调用的,存储过程里面调用存储函数
    3. 函数在SQL语句中,可以直接调用
    4. 存储过程能够实现的,存储函数也能够实现, 反之.存储函数能够实现的,存储过程也能实现.
    展开全文
  • 记得一点能用sql处理的尽量不用函数和存储过程处理。 2、创建函数 基本结构如下,可参照sf_score_pm的案例。 create or replace function 函数名称(参数 in 参数类型...) return 返回类型 is 参数列表 begin .....
  • MySQL程序设计 主讲人小刚老师 第5章 MySQL函数和存储过程 5.1 MySQL流程控制函数 5.2 MySQL常用函数 5.3 自定义函数 5.4 存储过程 MySQL程序设计 第5章 MySQL函数和存储过程 5.5 自定义函数和存储过程区别 MySQL...
  • 本文中自定义函数和存储过程基于Mysql + Navicat实现,这与SQL SERVER 中实现有一些区别。在Mysql + Navicat 中自定义存储过程,不需要写存储过程头部,直接写主体即可。并在相应地方设置参数,注意存储过程没有返回...
  • 1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数一般情况下是用来计算并返回一个计算结果而存储过程一般...
  • oracle数据库中函数和存储过程区别
  • 存储过程和存储函数区别

    千次阅读 2018-09-09 12:46:33
    存储过程和存储函数区别 语法区别:关键字不一样, 存储函数存储过程多了两个return。 本质区别:存储函数有返回值,而存储过程没有返回值。 如果存储过程想实现有返回值的业务,我们就必须使用out类型的参数...
  • 存储过程:可读可写 存储函数的读写权限这里要特殊说明一下: 创建存储函数的时候后,必须声明函数读写权限,且只能在DETERMINISTIC, NO SQL, or READS SQL DATA中选择。这三者的含义为确定性、无SQL语句、只对...
  • 数据库的使用中,经常用到函数和存储过程。都是为了实现某个sql功能,那么这两者有区别吗?都适用哪些场景?总结如下 总的来说函数限制比较多,如不能用临时表,只能用表变量等,而存储过程的限制相对就比较少。 1....
  • 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,可是也有它们的不同之处,这段时间刚学完函数存储过程,来给自己做一个总结: 一:存储过程:简单来说就是有名字的pl/sql块。语法结构...
  • 文章目录一、区别1、参数2、返回类型3、返回值4、调用方式二、使用1、创建函数2、创建存储过程 一、区别 1、参数 1函数:参数类型只有一种 2:存储过程的参数类型有in,out,inout 2、返回类型 1、自定义函数...
  • 主要介绍了谈谈sqlserver自定义函数存储过程区别,需要的朋友可以参考下
  • SQL函数和存储过程区别

    千次阅读 2012-07-07 09:47:56
    函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。 函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少 1. ...
  • 通过之前两篇文章对pl/sql程序的简单介绍,现在就可以稳稳的学习重点了,存储过程和存储函数,这个才是我们项目开发中真正要用到的,前面所学的都是为了这个做铺垫的。 1.什么是存储过程和存储函数? oracle允许将...
  • 在实际开发过程中,mysql的自定义函数和存储过程加以灵活运用,开发如虎添翼。 那么,从运算性能方面讲,函数PK存储过程,谁更快呢? 实际上,我们这样的比较是片面的,函数和存储过程各有各的用途。 这里,笔者分别...
  • 其实我们可以将比较复杂的查询写成函数,然后到存储过程中调用这些函数   在 ORACLE 中,存储过程可以做到的函数都可以做到;而有些函数的功能(如,返回值,用于 SQL 语句中),存储过程却不能实现。 但是在...
  • 如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PLSQL程序设计》(机械工业出版社)...
  • 1、声明所使用的标识符不一样 ,函数使用function ,存储过程procedure ...4、函数的参数作用仅仅是将数据传入函数中,存储过程的参数可以有传入传出两种方式(即存储过程里,可以通过参数结果将所需要的结果返回)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,005,487
精华内容 402,194
关键字:

函数和存储过程的区别