Oracle 存储过程 定义 和 优点 与 函数 区别

 
定义:

存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。



优 点:

1. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。

 

 

 

 

存储过程与函数的对比

 

 

 

------------------------------------------------------------------------------
QQ: 492913789
Email: ahdba@qq.com
Blog: http://www.cndba.cn/dave
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满);   DBA2 群:62697977(满)   DBA3 群:62697850(满)  
DBA 超级群:63306533(满);  DBA4 群: 83829929  DBA5群: 142216823   
DBA6 群:158654907  聊天 群:40132017   聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle存储过程函数是用PL/SQL语言编写的数据库对象,用于实现复杂的业务逻辑和数据处理。存储过程函数可以在数据库中进行定义和调用,提供了很大的灵活性和可重用性。 存储过程是一组SQL语句和控制结构的集合,可以接受输入参数并返回结果。它们可以用于执行常见的数据库操作,如插入、更新、删除数据,以及执行复杂的业务逻辑。存储过程可以在数据库中进行定义,并通过名称来调用执行。 函数是一个具有输入参数和返回值的可执行代码块。它们可以用于计算和返回单个值,例如数学运算、字符串处理或日期操作。函数可以在SQL查询中使用,并且可以像内置函数一样进行调用。 下面是一个示例存储过程的代码: ```sql CREATE OR REPLACE PROCEDURE get_employee_details (p_employee_id IN NUMBER, p_details OUT SYS_REFCURSOR) AS BEGIN OPEN p_details FOR SELECT * FROM employees WHERE employee_id = p_employee_id; END; ``` 上面的存储过程接受一个员工ID作为输入参数,并通过游标将该员工的详细信息返回给调用者。 下面是一个示例函数的代码: ```sql CREATE OR REPLACE FUNCTION calculate_salary_bonus (p_employee_id IN NUMBER, p_bonus_percentage IN NUMBER) RETURN NUMBER AS v_salary NUMBER; BEGIN SELECT salary INTO v_salary FROM employees WHERE employee_id = p_employee_id; RETURN v_salary * p_bonus_percentage / 100; END; ``` 上面的函数接受一个员工ID和奖金百分比作为输入参数,并返回计算后的奖金金额。 存储过程函数可以通过CREATE PROCEDURE和CREATE FUNCTION语句在Oracle数据库中进行定义。一旦定义好,它们可以通过名称进行调用,可以在其他存储过程函数SQL查询中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值