


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GBase 8S 自定义存储过程和函数存储过程(Stored Procedure)是一组已经事先编译好,能够完成特定功能的SQL语句集合,是一个独立的数据库对象。存储过程类似于高级语言中的函数,可被用户的应用程序调用,执行。不同的是,存储过程经过编译后存放在服务器端,这为开发C/S和B/S应用程序提供了强有力的支持。由于存储过程是已经编译好的代码,所以执行时不必再次进行编译,从而提高了程序的执行效率。存储过程的优点1. 模块化类似于高级语言中的函数,存储过程一旦简历就可由不同用户利用SPL编写的程序调用,使代码的复用性提高,减少代码量。2. 提高性能存储过程在创建时就进行了编译,并存储在服务器
2、中。以后对它的任何调用都不需在进行编译。因此存储过程的这种一次编译,多次执行的特点大大提高了程序执行的速度及性能。3. 减少网络流量存储过程经过编译存储于服务器,数据的处理和操作均在服务器端进行。调用时只需将存储过程的名称及参数传递给服务器,不用每次访问都传递很长的SQL语句段,从而降低了网络传输的开销。4. 提高安全性存储过程可以提高应用程序的安全性。参数化的存储过程有助于保护应用程序不受SQL注入攻击,此外还可以设定某些用户具有对指定过程的使用权限,保障数据库安全。存储过程及函数的语法结构1. 创建存储过程的SPL函数CREATE OR REPLACE PROCEDURE/FUNCTION
3、 <存储过程名> ( <参数列表> ) 语句块 END;在SPL中创建存储过程的一般格式如下:语句块既一组SPL或SQL语句,隐式的局域块包括在CREATE PROCEDURE、FUNCTION和 END 之间, 可使用BEGIN 和END 来显示的指明内嵌在一个语句块中的语句块。RETURING 或 RETURNS 关键字用来定义返回值的返回类型,返回类型可以是除Serial/Serial8和Text/Byte外的任意一种SQL的数据类型,在定义返回值类型时我们可以使用AS为返回值去一个名字。在函数体内必须有一个RETURN语句。存储过程及函数的流程控制1. IF、E
4、LSE条件语句IF <表达式> THEN 语句块 ELSEIF <表达式> THEN 语句块 ELSE 语句块 END IF;IF、ELSE条件语句的语法格式为:2. CASE结构某些复杂的程序可能要对一个变量的值进行多次判断,如果使用IF、ELSE结构就会使得程序,显得很繁琐,代码量加大。这时可以使用CASE结构来简化代码。CASE <表达式>WHEN <比较值> THEN 语句块 WHEN <比较值> THEN 语句块 END CASE;CASE函数的语法格式如下:3. 循环结构当在程序中需要反复执行一段相同代码时,可以利用SPL
5、提供的循环结构实现这样的复杂功能。WHILE循环结构如下:WHILE <表达式> 语句块 END WHILE;执行SPL函数或存储过程EXECUTE PROCEDURE/FUNCTION <存储过程名> (参数列表)执行已存在的存储过程应使用EXECUTE命令,其基本的执行语法格式如下:GBase 8s换可以利用CALL语句从一个存储过程中调用另一个存储过程:CALL <存储过程名> (参数列表)在调用时,参数可以是SPL语句或语句块,只要该返回单值,并且具有适当的类型和长度。如果填写的参数少于被调用的存储过程的参数,则未说明的参数被初始化为默认值,该默认值在创建存储过程时生命,若无默认值,返回错误。删除函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论