第七节 存储过程 (含函数)
来源:互联网 发布:淘宝旺旺号怎么注册 编辑:程序博客网 时间:2024/06/06 09:57
一
上一节所创建的PL/SQL 程序块都是匿名的,没有被存储,每次执行后都不可被重用。存储过程是一种命名的PL/SQL 程序块,将程序的业务逻辑放在数据库服务器端实现。使用存储过程的优点:1)java 代码需要与数据库通信方能执行增删改查操作,如果这些操作都是在数据库内部完成显然效率是最高的,存储过程可以在数据库端直接完成操作。并且是经过预编译优化后存储于SQL 内存中,使用时无需再次编译,提高了工作效率;2)存储过程的代码直接存放于数据库中,一般由客户端直接通过存储过程的名字进行调用,减少了网络流量,加快了系统执行速度,例如在进行百万以上的大批量数据查询时,使用存储过程分页要比其他方式分页快得多;3)使用存储过程可以减少S.Q. L. 注. 入. 式. 攻. 击. ,提高系统的安全性,执行存储过程的用户要具有权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接地存取数据;有些企业如金融银行对数据的安全要求比较严格,通常将这些逻辑都包含在存储过程中,不允许程序员直接操作数据表。
定义
create procedure procedure_name [(parameter[,parameter,...])] is
[local declarations]
begin
execute statements
[exception
exception handlers ]
end [procedure _name]
1 存储过程不能使用declare关键字表示声明部分。 不同于触发器的声明部分。
2 注意它后面可以有 is/as 前面有个括号表示传递的参数,这点不同于触发器。as和is都可以,目前未查到它们的区别。
3 变量可以写成诸如 job_param IN VARCHAR2 default 'SALESMAN' 形式表示有默认值
4 变量不可指定长度。不同于create table语句
5 end后面写过程名,也可以不写,触发器亦是如此。
二 函数
函数与过程非常类似,它也是一种存储在数据库中的命名程序块,并且函数也可以接受零个
或多个输入参数。函数与过程之间的主要区别在于,函数必. 须. 有. 返. 回. 值. 。
定义 :
create [or replace] function function_name (parameter [,parameter])
returne data_type is
[local declarations]
begin
execute statements
[exception
exception handlers]
end [function_name]
- 第七节 存储过程 (含函数)
- oracle创建包 含存储过程和函数
- 第七章存储过程
- 第七章:存储过程
- 第七章:存储过程
- 存储过程、存储函数
- mybatis 调用oracle存储过程 含输入输出
- 第七课 使用存储过程(翻译)
- 优化MyShool 第七章 存储过程
- SQL高级 第七章 存储过程
- Oracle:存储过程,存储函数
- Oracle-存储过程 存储函数
- mysql存储过程存储函数
- 存储过程和存储函数
- Oracle存储过程、存储函数
- oracle 存储函数,存储过程
- 存储过程,存储函数,触发器。。。
- 存储函数和存储过程
- nohup命令
- onStartCommand方法返回的数值问题
- 如何计算地址线和数据线
- ARG_MAX
- POJ 3158 Kickdown(我的水题之路——齿轮盒子,读题失败)
- 第七节 存储过程 (含函数)
- Java读写properties文件
- DRAM的刷新
- mysql cmd
- 给wince编译7zip的方法(作者Pavlov提供)
- ubuntu 10.04下如何以root身份登录
- fgetc fgets fputc fputs
- 关于cache的计算方法
- asp.net的js中获取控件的ClientID