资源描述:
《达梦数据库存储过程的特点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、达梦数据库存储过程的特点达梦数据库允许用户使用系统提供的DMPL/SQL语言创建过程或函数,这些过程或函数象普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和存储函数在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。25亿网站后台管理系统将存储过程和存储函数统称为存储模块。达梦数据库的存储模块机制是一种技术,而不是一种独立的工具,它是和服务器紧密结合在一起的。可以认为这种技术是执行D
2、MPL/SQL语言的一种机器,它可以接受任何有效的存储模块,按照语言本身所规定的语义执行,并将结果返回给客户。达梦数据库的存储模块机制具有如下优点:1.提供更高的生产率(1)在设计应用时,围绕存储过程/函数设计应用,可以避免重复编码,提高生产率;(2)在自顶向下设计应用时,不必关心实现的细节;(3)编程方便。2.便于维护(1)用户的存储模块在数据库集中存放;(2)用户可以随时查询、删除它们,而应用程序可以不作任何修改,或只做少量调整。3.提供更好的性能(1)存储模块在创建时被编译成伪码序列,在运行时不需要重新进行编译和优化处理,它具有更快的执行速度,
3、可以同时被多个用户调用,并能够减少操作错误;如用sqlserver修改mssql2000的存储过程所有者为dbo,这些小地方还是有些麻烦的。(2)存储模块在执行时数据对用户是不可见的,提高了数据库的安全性;(3)存储模块具有更高的可靠性;(4)存储模块是一种高效访问数据库的机制,网站后台管理模板使用存储模块可减少应用对DM的调用,降低了系统资源浪费,显著提高性能,尤其是在网络上与DM通讯的应用更显著。2.1.4.3DM与Oracle存储过程对比表操作OracleDM差异基本语法存储过程:CREATE[ORREPLACE]PROCEDUREproced
4、ure_name[(argument[存储过程:CREATE[ORREPLACE]PROCEDURE<存储过程名>[(<参数名><参数模式>无{IN
5、OUT
6、INOUT}]type,...argument[{IN
7、OUT
8、INOUT}]type)]{IS
9、AS}procedure_body其中procedure_name是要创建的过程名,argument是过程的参数名,type是关联参数的类型,procedure_body是构成该过程代码的PL/SQL块。IN,OUT,和INOUT是参数的模式,如果没有为参数指定模式,则参数缺省的模式是IN。存储函数
10、:CREATE[ORREPLACE]FUNCTIONfunction_name[(argument[{IN
11、OUT
12、INOUT}]type,...argument[{IN
13、OUT
14、INOUT}]type)]RETURNreturn_type{IS
15、AS}function_body其中function_name是函数的名称,参数argument和type的含义与过程相同,return_type是函数返回值的类型,function_body是包括函数体的PL/SQL块。IN,OUT,和INOUT是参数的模式。如果没有为参数指定模式,则参数缺省的模式是IN
16、。<参数类型>{,<参数名><参数模式><参数类型>})]AS
17、IS[<说明部分>]<执行部分>[<异常处理部分>]END;存储函数:CREATE[ORREPLACE]FUNCTION<存储函数名>[(<参数名><参数模式><参数类型>{,<参数名><参数模式><参数类型>})]RETURN<返回数据类型>AS
18、IS[<说明部分>]<执行部分>[<异常处理部分>]END;在存储函数中必须使用RETURN语句向函数的调用环境返回一个值。存储函数不能用CALL语句调用,它只能出现在表达式中。存储函数和存储过程很相似,它们的区别在于:1.存储过程没有返回值
19、,而存储函数有;2.存储过程中可以没有返回语句,而存储函数必须通过返回语句结束;3.存储过程的返回语句中不能带表达式,而存储函数必须带表达式;4.存储过程不能出现在一个表达式中,而存储函数只能出现在表达式中。创建存储过程CREATE[ORREPLACE]PROCEDURE<存储过程名定义>[(<参数名><参数模式><参数类型>[<默认值表达式>]{,<参数名><参数模式><参数类型>[<默认值表达式>]})][WITHENCRYPTION]AS
20、ISCREATE[ORREPLACE]PROCEDURE<存储过程名定义>[(<参数名><参数模式><参数
21、类型>[<默认值表达式>]{,<参数名><参数模式><参数类型>[<默认值表达式>]})][WITHENCR