首页 达梦数据库存储过程的特点

达梦数据库存储过程的特点

举报
开通vip

达梦数据库存储过程的特点达梦数据库存储过程的特点 达梦数据库允许用户使用系统提供的DMPL/SQL语言创建过程或函数,这些过程或函数象普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和存储函数在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。25亿网站后台管理系统将存储过程和存储函数统称为存储模块。 达梦数据库的存储模块机制是一种技术,而不是一种独立的工具,它是和服务...

达梦数据库存储过程的特点
达梦数据库存储过程的特点 达梦数据库允许用户使用系统提供的DMPL/SQL语言创建过程或函数,这些过程或函数象普通的过程或函数一样,有输入、输出参数和返回值,它们与表和视图等数据库对象一样被存储在数据库中,供用户随时调用。存储过程和存储函数在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。25亿网站后台管理系统将存储过程和存储函数统称为存储模块。 达梦数据库的存储模块机制是一种技术,而不是一种独立的工具,它是和服务器紧密结合在一起的。可以认为这种技术是执行DMPL/SQL语言的一种机器,它可以接受任何有效的存储模块,按照语言本身所规定的语义执行,并将结果返回给客户。 达梦数据库的存储模块机制具有如下优点: 1. 提供更高的生产率 (1) 在设计应用时,围绕存储过程/函数设计应用,可以避免重复编码,提高生产率; (2) 在自顶向下设计应用时,不必关心实现的细节; (3) 编程方便。 2. 便于维护 (1) 用户的存储模块在数据库集中存放; (2) 用户可以随时查询、删除它们,而应用程序可以不作任何修改,或只做少量调整。 3. 提供更好的性能 (1) 存储模块在创建时被编译成伪码序列,在运行时不需要重新进行编译和优化处理,它具有更快的执行速度,可以同时被多个用户调用,并能够减少操作错误;如用sqlserver修改mssql2000的存储过程所有者为dbo,这些小地方还是有些麻烦的。 (2) 存储模块在执行时数据对用户是不可见的,提高了数据库的安全性; (3) 存储模块具有更高的可靠性; (4) 存储模块是一种高效访问数据库的机制,网站后台管理模板使用存储模块可减少应用对DM的调用,降低了系统资源浪费,显著提高性能,尤其是在网络上与DM通讯的应用更显著。 2.1.4.3 DM与Oracle存储过程对比表 操作 Oracle DM 差异 基本语法 存储过程: 存储过程: 无 CREATE [OR REPLACE] CREATE [OR REPLACE ] PROCEDURE procedure_name PROCEDURE <存储过程名> [ ( argument[{IN | OUT | IN [(<参数名> <参数模式> <参数类 OUT}] type, 型> {,<参数名> <参数模式> <参... 数类型>})] argument[{IN | OUT | IN OUT}] AS | IS type) ] {IS | AS} [<说明部分>] procedure_body <执行部分> 其中procedure_name是要创建的[<异常处理部分>] 过程名,argument是过程的参数END; 名,type是关联参数的类型,存储函数: procedure_body是构成该过程代CREATE [OR REPLACE ] 码的PL/SQL块。 FUNCTION <存储函数名> IN,OUT,和IN OUT是参数的模[(<参数名> <参数模式> <参数类式,如果没有为参数指定模式,型>{,<参数名> <参数模式> <参则参数缺省的模式是IN。 数类型>})] 存储函数: RETURN <返回数据类型> CREATE [OR REPLACE] AS | IS FUNCTION function_name [<说明部分>] [( argument[{IN | OUT | IN OUT}] <执行部分> type, [<异常处理部分>] ... END; argument[{IN | OUT | IN OUT}] 在存储函数中必须使用RETURNtype)] 语句向函数的调用环境返回一个RETURN return_type{IS | AS} 值。 function_body 存储函数不能用CALL语句调用,其中function_name是函数的名它只能出现在表达式中。 称,参数argument和type的含义存储函数和存储过程很相似,它与过程相同, return_type是函数们的区别在于: 返回值的类型,function_body是1. 存储过程没有返回值,而存储包括函数体的P L / S Q L块。IN , 函数有; OUT,和IN OUT是参数的模式。2. 存储过程中可以没有返回语如果没有为参数指定模式,则参句,而存储函数必须通过返回数缺省的模式是IN。 语句结束; 3. 存储过程的返回语句中不能 带表达式,而存储函数必须带 表达式; 4. 存储过程不能出现在一个表 达式中,而存储函数只能出现 在表达式中。 创建存储CREATE [OR REPLACE ] CREATE [OR REPLACE ] 无 过程 PROCEDURE <存储过程名定义> PROCEDURE <存储过程名定义> [(<参数名> <参数模式> <参 [(<参数名> <参数模式> <参数类型> [<默认值表达式>] 数类型> [<默认值表达式>] {,<参数名> <参数模式> <参 {,<参数名> <参数模式> <参数类型> [<默认值表达式>] })] 数类型> [<默认值表达式>] })] [WITH ENCRYPTION] AS | IS [WITH ENCRYPTION] AS | IS [<说明部分>] [<说明部分>] BEGIN BEGIN <执行部分> <执行部分> [<异常处理部分>] [<异常处理部分>] END; END; 撤销存储DROP PROCEDURE <存储过程DROP PROCEDURE <存储过程无 过程 名>; 名>; 调用存储CALL <存储过程名>[(<参数>{,<1. CALL <存储过程名>[(<参DM支过程 参数>})]; 数>{,<参数>})]; 持多 2. EXEC <存储过程名>[(<参种调 数>{,<参数>})]; 用方 3. <存储过程名>[(<参数>{,<参式 数>})]; 创建存储CREATE [OR REPLACE ] CREATE [OR REPLACE ] 无 函数 FUNCTION <存储函数名定义> FUNCTION <存储函数名定义> [(<参数名> <参数模式> <参 [(<参数名> <参数模式> <参 数类型> [<默认值表达式>] 数类型> [<默认值表达式>] {,<参数名> <参数模式> <参 {,<参数名> <参数模式> <参 数类型> [<默认值表达式>]})] 数类型> [<默认值表达式>]})] RETURN <返回数据类型> RETURN <返回数据类型> [WITH ENCRYPTION] AS | [WITH ENCRYPTION] AS | IS IS [<说明部分>] [<说明部分>] BEGIN BEGIN <执行部分> <执行部分> [<异常处理部分>] [<异常处理部分>] END; END; 撤销存储DROP FUNCTION <存储函数DROP FUNCTION <存储函数无 函数 名>; 名>; 调用存储SELECT <存储函数名>[(<参SELECT <存储函数名>[(<参无 函数 数>{,<参数>})]; 数>{,<参数>})]; PLSQL支1. 顺序结构; 1. 顺序结构; 无 持的结构 2. 分支结构,包括条件、循环结2. 分支结构,包括条件、循环结 构等; 构等; 3. 迭代结构,包括子过程、子函3. 迭代结构,包括子过程、子函 数的调用。 数的调用。 语句块结DECLARE 语法格式: 无 构 ... [{DECLARE <变量说明>;} ] BEGIN BEGIN ... <执行部分> EXCEPTION [<异常处理部分>] ... END END; DMPL/SQL基本的程序单元;一 个语句可以当作一个整体SQL语 句对待,允许嵌套,可出现在SQL 语句能出现的任何地方。 赋值语句 variable := expression; 给对象赋值; DM支 语法格式: 持多 1. <赋值对象>:=<值表达式> 种赋 2. SET <赋值对象>=<值表达式> 值方 需要注意的是,使用第2种形式式 时,不需要冒号“:”。 变量定义 variable data_type 1. 在语句块的说明部分可以定义ORACL[:=|DEFAULT] default_value; 变量、游标、异常变量、子过程E支持 或子函数; 缺省 2. 需要强调的一点是,一个语句值; 块意味着一个作用域范围,也就DM不 是说,在一个语句块的说明部分支持 定义的任何对象,其作用域就是缺省 该语句块; 值; 3. 暂不支持缺省值的定义。 返回语句 RETURN; RETURN; 无 RETURN <结果值>; RETURN <结果值>; 1. 结束存储模块的运行,将控制 返回给调用者; 2. 如果从函数返回,同时返回函 数的结果。 退出循环 EXIT [WHEN condition]; EXIT [WHEN condition]; 无 1. EXIT与循环语句一起使用,用 于终止循环语句的执行,将控制 转移到循环语句的下一个语句; 2. 可以无条件终止循环语句; 3. 可以带条件终止循环语句,当 检测条件满足时才执行EXIT语 句。 IF语句 IF THEN 根据布尔表达式的值,进行程序DM支 的分支控制; 持两[ELSIF 语法格式: 种语] IF <条件表达式> THEN 法标„ <执行部分>; 记 [ELSIF [{ELSEIF|ELSIF <条件表达式> ] THEN „ <执行部分>;}] [ELSE [ELSE <执行部分>;] ] END IF; END IF; 注意:ELSEIF与ELSIF两种写法。 循环语句 1. WHILE 1. LOOP:循环执行,直至EXIT无 WHILE LOOP 语句终止; ; CREATE OR REPLACE [;]... PROCUDURE P2 END LOOP; AS 2. LOOP A INT; [ <
本文档为【达梦数据库存储过程的特点】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731942
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:24
分类:工学
上传时间:2017-09-19
浏览量:34