当前位置:首页 » 存储配置 » oracle存储过程和函数

oracle存储过程和函数

发布时间: 2022-06-28 02:35:57

㈠ oracle中的存储过程与函数

函数是有返回值的,存储过程没有。
在BODY中的话,一般函数都是SELECT语句,而存储过程是包括DML语句的。

㈡ Oracle 存储过程和函数的区别

Oracle中函数和存储过程仅体现在一个地方:


  1. 函数有返回值,而存储过程没有返回值(当然,两者都可以通过定义out参数来实现返回值)


其实,Oracle函数和存储过程差别很小,对比其他数据库,比如sqlServer:

  1. sqlserver中,函数是不能存在非select的dml语句的,换句话说,函数中,sqlserver是不能出现update、delete、insert等语句的

  2. 而Oracle中,是十分自由和宽容的,update、delete、insert等语句都可以出现

  3. 但因为Oracle的自由度,会引起其它一些问题:如果使用C#来调用Oracle的函数时,会出现因函数含有update等语句而无法调用,只能换成存储过程或者在函数外再加一层存储过程来实现调用。

㈢ Oracle函数 和 Oracle存储过程的区别

函数和存储过程的区别

从参数的返回情况来看:
如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
从调用情况来看:
如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PL\SQL程序设计》(机械工业出版社);

如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等),所以虽然他们的语法上很相似但用户在使用他们的时候所需要完成的功能大部分情况下是不同的。

㈣ oracle存储过程和函数的区别

过程:函数和存储过程的统称。

函数:有且仅有一个返回值,可以用于SQL语句中。 如:x := get_X(),select get_X() from al,返回值为函数调用的结果。

存储过程:无返回值。要返回结果,必须声明为out参数。
如:sp_x(x,y,z),x和y为in类型参数,z为out/in out类型参数。

在oracle中,封装工具还有自定义类型、包等。包可以封装过程和函数,包头类似java中的接口,包体类似JAVA中实现接口的类。

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

  1. 函数有1个返回值,而存储过程可以有多个或者没有。

  2. 函数可以在其他语句中直接调用,而存储过程必须单独调用。

  3. 函数通常用于计算或较为单一的数据功能,存储过程相对完成更复杂的复合性的数据功能。

  4. 最关键普通语句每次执行都要编译,而存储过程只在创建时编译之后直接调用,速度更快,在大数据复杂功能时尤其明显。

  5. 存储过程还可以指定用户权限。

㈥ Oracle中 存储过程,过程和函数有什么区别和联系

过程:函数和存储过程的统称。

函数:有且仅有一个返回值,可以用于SQL语句中。 如:x := get_X(),select get_X() from al,返回值为函数调用的结果。

存储过程:无返回值。要返回结果,必须声明为out参数。
如:sp_x(x,y,z),x和y为in类型参数,z为out/in out类型参数。

在oracle中,封装工具还有自定义类型、包等。包可以封装过程和函数,包头类似JAVA中的接口,包体类似JAVA中实现接口的类。

㈦ oracle数据库中函数和存储过程的区别

函数就是函数,跟你用的oracle 内置函数是一样的,带参数或者不带参数,返回一个结果
创建语句 create or replace funtion (……)
存储过程一边是处理比较复杂的处理逻辑或者机械化调用等
创建语句 CREATE OR REPLACE PROCEDURE(……)
他俩是不同的东西,存储可以调用函数,

㈧ Oracle中存储过程和函数的区别

定义:
存储过程(Stored Procere )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程

带有参数)来执行它。

存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。

在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。

优 点:

1. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。

3.存储过程可以重复使用,可减少数据库开发人员的工作量。

4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。

存储过程与函数的对比

存储过程的优缺点
优点:减少网络交互的成本。
缺点:
a、不可移植性,每种数据库的内部编程语法都不太相同,当你的系统需要兼容多种数据库时,最好不要用存储过程。
b、学习成本高,DBA一般都擅长写存储过程,但并不是每个程序员都能写好存储过程,除非你的团队有较多的开发人员熟悉写存储过程,否则后期系统维护会产生问题。
c、业务逻辑多处存在,采用存储过程后也就意味着你的系统有一些业务逻辑不是在应用程序里处理,这种架构会增加一些系统维护和调试成本。
d、存储过程和常用应用程序语言不一样,它支持的函数及语法有可能不能满足需求,有些逻辑就只能通过应用程序处理。
e、如果存储过程中有复杂运算的话,会增加一些数据库服务端的处理成本,对于集中式数据库可能会导致系统可扩展性问题。
f、为了提高性能,数据库会把存储过程代码编译成中间运行代码(类似于java的class文件),所以更像静态语言。当存储过程引用的对像(表、视图等等)结构改变后,
存储过程需要重新编译才能生效,在24*7高并发应用场景,一般都是在线变更结构的,所以在变更的瞬间要同时编译存储过程,这可能会导致数据库瞬间压力上升引起故障(Oracle数据库就存在这样的问题)。

㈨ oracle 怎么执行存储过程跟函数

调用oracle存储过程用begin...end的方式。
基本语法:
begin
存储过程名(参数1,参数2……);--如果无参数则省略括号及括号内部分end;
如,有存储过程:
create
or
replace
procere
p_testasv_begintime
varchar2(20);v_endtime
varchar2(20);v_str
varchar2(10);begin
v_begintime:=to_char(sysdate,'yyyy-mm-dd
hh24:mi:ss');
select
'badkano'
into
v_str
from
al;
v_endtime:=to_char(sysdate,'yyyy-mm-dd
hh24:mi:ss');
dbms_output.put_line('开始时间为:'||v_begintime);
dbms_output.put_line('结束时间为:'||v_endtime);end;
执行:begin
p_test;end;

热点内容
pr默认存储 发布:2024-05-05 04:29:31 浏览:551
roblox跑酷脚本怎么做 发布:2024-05-05 03:57:35 浏览:701
捷径清理缓存 发布:2024-05-05 03:57:35 浏览:478
ftputility哪里下载 发布:2024-05-05 03:47:13 浏览:1000
雷凌运动版如何连接安卓手机导航 发布:2024-05-05 03:42:48 浏览:267
自动鬼使黑脚本 发布:2024-05-05 03:10:49 浏览:880
游戏脚本编程书籍推荐 发布:2024-05-05 02:59:13 浏览:72
编译器书籍推荐 发布:2024-05-05 02:57:02 浏览:56
电池存储温度 发布:2024-05-05 02:53:07 浏览:207
安卓在美国怎么下载 发布:2024-05-05 02:31:06 浏览:925