- 1、本文档共141页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;;;DM_SQL程序是DM提供的一种过程化SQL语言,DM_SQL程序是一种技术,可以认为这种技术是执行DM_SQL程序的一种机器,它可以接受任何有效的DM_SQL程序,按照语言本身所规定的语义执行,并将结果返回给客户。DM_SQL程序支持所有SQL数据类型和所有SQL函数,同时支持所有DM对象类型。本次任务的主要介绍DM_SQL程序设计基础,主要包括DM_SQL程序块结构介绍、DM_SQL程序编写规则介绍、DM_SQL程序常用数据类型补充和DM_SQL程序结构。;;语句块是DM_SQL程序语言的基本程序单元。DM_SQL程序语句块的结构由块声明、执行部分及异常处理部分组成,DM_SQL程序语句块语法如下:
DECLARE
/*声明部分:在此声明DM_SQL程序用到的变量、类型、游标*/
BEGIN
/*执行部分:过程及SQL语句,是程序的主要部分*/
EXCEPTION
/*异常处理部分:错误处理*/
END;;注意:
1.声明部分为可选项,如果不需要声明变量和常量,可以忽略此部分,但如果定义了游标则需要在此部分声明。
2.执行部分是必有部分,为程序的可执行语句(也可以是其他DM_SQL程序块),一般以EXCEPTION或者END结束。
3.异常处理模块为可选项,在这部分中处理异常或是错误。
4.语句块可以嵌套,它可以出现在任何其他语句可以出现的位置。
5.DECLARE、BEGIN、EXCEPTION后面没有英文分号,其他命令都需要以英文分号结束。;;DM_SQL程序编写应该遵循变量命名规范、大小写规则,同时应使用注释对程序进行说明,提高程序代码的规范性和可读性。
1.变量命名规范
变量应定义在声明部分,声明一个变量需要给这个变量指定名字及数据类型。变量名必须以字母开头,包含数字、字母、下画线以及$、#符号,长度不能超过128字符,并且不能与DM的DM_SQL程序保留字相同,变量名与大小写是无关的。
命名变量时,为了便于阅读,提高程序的可读性,一般采用如下命名规则。
(1)当定义变量时,通常采用v_作为前缀,如v_name。
(2)当定义常量时,通常采用c_作为前缀,如c_name。
(3)当定义游标时,通常采用_cursor作为后缀,如name_cursor。
当定义异常时,通常采用e_作为前缀,如e_name_error。;2.大小写规范
当在DM_SQL中编写命令时,语句不区分大小写,但为了提高??序的可读性和性能,一般按照如下大小写规则编写代码。
(1)DM_SQL关键字采用大写格式,如SELECT、UPDATE、SET、WHERE等;
(2)DM_SQL程序关键字采用大写格式,如DECLARE、BEGINE、END等;
(3)数据类型采用大写格式,如INT、VARCHAR2、DATE等;
(4)标识符和常量采用小写格式,如v_s、c_cur;
(5)数据库对象和表字段采用小写格式,如表名employee、location等。;3.注释
注释是用于解释代码,从而提高程序的可读性。在编译程序代码时,注释会被编译器忽略掉。注释包括单行注释和多行注释。
(1)单行注释
单行注释是指放置在单行上的注释文本,主要用于说明单行代码的作用,在DM_SQL程序中使用“--”符号编写单行注释。
(2)多行注释
多行注释是指放置在多行上的注释文本,主要用于说明一段代码的作用,在DM_SQL程序中使用“/*……*/”符号编写多行注释。;;DM_SQL程序支持所有的DM_SQL数据类型,包括:精确数值数据类型、近似数值数据类型、字符数据类型、一般日期时间数据类型、时间间隔数据类型,此部分内容参考模块三任务二了解达梦SQL数据类型及表达式。
此外,为了进一步提高DM_SQL程序的程序设计属性,DM_SQL程序还扩展支持了%TYPE、%ROWTYPE、记录类型、数组类型、集合类型和类型,用户还可以定义自己的子类型。
1.%TYPE和%ROWTYPE
在许多时候,DM_SQL程序变量被用来处理存储在数据库表中的数据。这种情况下,变量应该拥有与表列相同的类型。例如表T(IDINT,NAMEVARCHAR(30))中字段NAME类型为VARCHAR(30)。对应地在DM_SQL程序中,我们可以声明一个变量:
DECLARE
V_NAMEVARCHAR(30);
;但是如果T中的NAME字段定义发生了变化,比如变为VARCHAR(100)。那么存储过程中的变量V_NAME也要相应修改为:
DECLARE
V_NAMEVARCHAR(100);
如果用户应用中有很多的变量以及DM_SQL程序代码,这种处理可能是十分耗时和容易出错的。
%TYPE可以将变量同表列的类型进行绑定。例如:
DECLARE
V_NAM
文档评论(0)