rprt.net
当前位置:首页 >> sql存储过程和函数的区别 >>

sql存储过程和函数的区别

本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行.执行的本质都一样.函数限制比较多,比如不能用临时表,只能用表变量.还有一些

1、函数只能返回一个变量,而存储过程可以返回多个; 例如:函数可以嵌入sql中和存储过程中使用,但是存储过程需要让sql的query可以执行,将mysql_real_connect的最后一个参数设置为CLIENT_MULTI_STATEMENTS 2、函数的限制比较

存储过程和函数本质上是没有区别的,不同的是函数的返回值在函数名本身,因此函数是可以嵌入在sql中使用的.这点才是最重要的区别.

1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强. 2.对于存储过程来说可以返回参数,而函数只能返回值或者表对象. 3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面. 4.当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译.

不同点:1、标识符不同.函数的标识符为FUNCTION,过程为:PROCEDURE.2、函数中有返回值,且必须返回,而过程可以没有返回值.3、过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除在select中,必须将返回值赋给变量.4、函数可以在select语句中直接使用实现对字段进行计算,而存储过程不能,例如:假设已有函数fun_getAVG() 返回number类型绝对值.那么select fun_getAVG(col_a) from table 这样是可以的.5、函数一般处理简单的逻辑方便,存储过程一般处理复杂的逻辑,相同点:1、二者都可以有输出2、二者写法逻辑上很相似

存储过程: 存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一

函数分两种,表值函数跟标量函数 表值函数最后要返回一个表变量,而标量函数最后要返回一个标量值 存储过程即一组批处理,可以返回或不返回值,仅仅是执行其内部的全部语句 函数可以与一般sql语句一同编写,而存储过程不可以,需要单独执行

函数有返回值 sql语句执行的时候要先编译,然后执行.存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数

这个问题随便百度都有很多写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数;函数的参数列表只有输入参数,并且有return .返回值上:存储过程的返回值,可以有多个值,函数的返回值,只有一个值.调用方式上:存储过程的调用方式有:1)、exec ;2)、execute ;3)、在PL/SQL语句块中直接调用.函数的调用方式有:在PL/SQL语句块中直接调用.参考:http://www.cnblogs.com/SharkBin/archive/2012/08/08/2627912.html

存储过程:可以进行增删查改dml操作,甚至可以进行建表等ddl操作;不能return返回值,可以用out参数返回值.用exec 过程名 的方法调用.函数,可以return返回值;一般来说,只能进行select操作,不能进行增删改,也不能进行ddl操作.可以通过赋值的方式调用,也可以在sql语句中使用.

网站首页 | 网站地图
All rights reserved Powered by www.rprt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com