达梦数据库中的保留字

1. 标识符、关键字和保留字

在 SQL 语言的规范体系中,关键字与保留字是构成 SQL 语法基础的核心词汇,是数据库识别、解析和执行 SQL 指令的关键依据。

首先回顾一下数据库中标识符、关键字、保留字的相关概念。

标识符:用户定义的用于标识对象的名称,通常只能以字母或下划线_开头,如用户名模式名、表名、列名、函数名、存储过程名、别名等;

关键字:数据库语法里有特定含义的单词,属于SQL语法的一部分,用来表示数据库中的操作、命令、子句等,部分关键字(非保留关键字)可以作为标识符使用,但通常不建议将任何关键字作为标识符使用;

保留字:关键字的严格子集,数据库强制保留、禁止直接自定义使用的单词。

不同数据库中对关键字和保留字的设定和使用限制有较大差异,在进行国产化替代或数据库升级时可能会因关键字/保留字问题对数据库系统和上层应用产生较大影响。为探究DM8数据库中的关键字和保留字使用限制,下面以DM8(03134284488-20260330-320063-20200)版本为例进行研究,可通过以下语句查询数据库版本。

select id_code() from dual;

2. 冲突场景

通常达梦数据库(此处特指DM8)会在以下两种场景遇到保留字冲突问题:

  1. 国产化替代,其他数据库需迁移到达梦数据库,原数据库对象标识符在达梦数据库中是关键字;
  2. DM8达梦数据库版本升级,因加入新特性或新功能,会新增关键字,如8.1.3.xxx版本升级到8.1.4.xxx后新增78个关键字。

若原数据库对象中存在保留字,使用不当将影响对象的访问和管理。

3. 达梦数据库的关键字和保留字

可通过达梦数据库中的V$RESERVED_WORDS视图来查看系统中的关键字和保留字,视图结构如下:

序号

列名

数据类型

说明

1

KEYWORD

VARCHAR(30)

关键字名字

2

LENGTH

INTEGER

关键字长度

3

RESERVED

VARCHAR(1)

是否保留字。Y是;N否。

4

RES_SQL

VARCHAR(1)

是否SQL保留字。Y是;N否。是则不能在SQL中用作标识符。

5

RES_PL

VARCHAR(1)

是否DMSQL保留字。Y是;N否。是则不能在DMSQL程序(包含存储过程、存储函数、匿名块、触发器等)语句块中作为标识符

6

RES_SCHEMA

VARCHAR(1)

是否模式保留字。Y是;N否。是则不能用作模式名。

7

RES_VARIABLE

VARCHAR(1)

是否变量保留字。Y是;N否。是则不能用作变量标识符。

8

RES_ALIAS

VARCHAR(1)

是否别名保留字。Y是;N否。是则不能用作别名标识符。

9

RES_FIXED

VARCHAR(1)

是否被系统预定。Y是;N否。为N时方可通过EXCLUDE_RESERVED_WORDS参数屏蔽

通过上述视图即可查询到数据库系统当前未被排除的全部关键字和保留字,其中RESERVED字段用于判断该关键字是否保留字,N表示关键字不是保留字,可在数据库中直接作为各类对象标识符使用;Y表示关键字是保留字,不能被直接用作标识符。其中RES_SQL、RES_PL、RES_SCHEMA等保留字均为RESERVED保留字的具体分类。

在使用达梦数据库过程中遇到保留字冲突报错如下图所示:

下面就以V$RESERVED_WORDS视图中保留字(RESERVED='Y')为基础解析使用达梦数据库时遇到保留字冲突的解决办法。

4. 保留字冲突解决方案

在使用数据库过程中,原则上不允许将数据库系统保留字、关键字作为数据库标识符使用,通常建议直接从源头规范使用标识符,避免在与数据库交互过程中不当使用。

但若在数据库迁移到达梦数据库之前已经形成成熟应用产品、重新命名代价太大了,也可以通过一定的方法绕过或屏蔽保留字,下面为大家介绍三种处理方案:

a. 双引号

在与数据库系统进行交互时,用双引号将保留字括起来即可绕过保留字校验,用保留字ADD测试如下:

--首先创建测试用户TEST并授权
CREATE USER "TEST" IDENTIFIED BY <PASSWORD>;

grant "PUBLIC" to TEST;
grant CREATE TABLE,CREATE SESSION to TEST;

--不加双引号创建表ADD
CREATE TABLE TEST.ADD(COL1 INT,COL2 VARCHAR(10));
/*
执行失败(语句1)
-2007: 第 1 行, 第 36 列[ADD]附近出现错误: 
语法分析出错
*/

--添加双引号创建表ADD
CREATE TABLE TEST."ADD"(COL1 INT,COL2 VARCHAR(10));  --执行成功

--不带双引号的查询
SELECT * FROM TEST.ADD;
/*
执行失败(语句1)
-2007: 第 1 行, 第 35 列[ADD]附近出现错误: 
语法分析出错
*/
--带双引号的查询
SELECT * FROM TEST."ADD";  --执行成功

在对数据库中其他数据库对象(如列、索引等)进行定义、管理时,若要使用保留字,添加双引号均可执行成功。在实际生产环境中,该方案优点是对数据库服务无影响,但必须对生产环境应用服务进行一定改造

变量保留字(RES_VARIABLE='Y')和别名保留字(RES_ALIAS='Y')均可直接作为表名、列名标识符使用(别名保留字甚至可直接作为表别名/列别名使用),而无需添加双引号,均因系统处理时默认为对相应关键字/保留字两端添加了双引号。但变量保留字在DMSQL语句块(存储函数、存储过程、匿名块或触发器)中仍不可直接作为变量标识符使用,需要手动添加双引号。验证过程如下:

--找到变量保留字DISABLE及别名保留字FULL
select * from v$reserved_words where res_variable='Y' or res_alias='Y';

--用变量保留字DISABLE和别名保留字FULL分别创建表
CREATE TABLE TEST.DISABLE(C1 INT,C2 INT);--执行成功
CREATE TABLE TEST.FULL(C1 INT, C2 VARCHAR(1));--执行成功
--通过错误查询来验证
select test.full.c3 from test.full;
/*
执行失败(语句1)
-2207: 第19 行附近出现错误:
无法解析的成员访问表达式[TEST."FULL".C3]
*/

程序中处理:应用端可通过在程序中设置统一拦截器,遇到关键字时自动在关键字两端加上双引号,可达成同样的效果。

📌

特别注意:ROWID、TRXID、VERSIONS_STARTTIME、VERSIONS_ENDTIME、VERSIONS_STARTTRXID、VERSIONS_ENDTRXID和VERSIONS_OPERATION等7个关键字无法作为列名使用,即使用双引号括起来也不可以。

b. 数据库连接串(推荐)

在数据库连接串后面添加KEYWORDS参数,需要屏蔽的关键字作为参数用括号括起来,多个关键字之间用逗号(,)分隔,具体如下:

jdbc:dm://localhost:5237?KEYWORDS=(ADD,AUDIT)

使用该连接串连接数据库的应用端即完成对关键字"ADD"和"AUDIT"的屏蔽。该屏蔽方案灵活度高、对数据库服务本身的影响小,对应用的改造成本也较低,甚至可以对系统预定保留字(RES_FIXED=’Y')生效,在应用中全面改造完成后任意部署扩展均生效,较为推荐。本例中ADD和AUDIT均为系统预定保留字,如下图所示:

通过达梦数据库官方推荐的数据库管理工具SQLark模拟测试该方案,添加新的数据库连接,并将连接方式改为URL,并利用KEYWORDS屏蔽关键字,如下图所示:

仍然通过创建表和列来确认相应保留字是否被屏蔽,保留字不添加双引号,如下:

CREATE TABLE SYSDBA.ADD(C1 INT, AUDIT VARCHAR(10));--执行成功,说明屏蔽成功

通过该方法屏蔽后,并不影响数据库服务本身的关键字/保留字有效性,只影响当前连接。可通过查询V$RESERVED_WORDS视图进行查验:

select * from SYS."V$RESERVED_WORDS" where keyword in('ADD','AUDIT');

视图显示,ADD和AUDIT仍为数据库关键字,且为系统预定保留字,如下图所示:

也可通过DM数据库安装后附带的管理工具manager-数据库连接-高级中添加链接属性进行模拟,属性名选择keyWords,属性值填写要屏蔽的保留字,多个用逗号分隔。如下图:

c. 客户端配置文件dm_svc.conf(推荐)

dm_svc.conf是达梦数据库的客户端配置文件,可对同一机器上的特定连接属性进行调整,具体定义可参考官方文档《DM8系统管理员手册》2.1.2 客户端配置文件

可通过在dm_svc.conf中配置KEYWORDS或KEY_WORDS属性进行保留字屏蔽,多个保留字用逗号(,)分隔。配置示例如下:

#全局配置
TIME_ZONE=(480)
LANGUAGE=(CN)
L=(LOCALHOST:5236)#服务名及对应连接配置,可配置多个服务名
KEYWORDS=(PUBLIC) #屏蔽保留字,当前机器所有客户端/接口连接默认生效

[L]#服务名及服务配置,仅用对应服务名连接时生效
KEYWORDS=(GOTO,BOTH)#屏蔽保留字,仅当使用L服务名连接时生效
KEY_WORDS=(ADD,ARRAYLEN)#屏蔽保留字,仅当使用L服务名连接时生效

按照上面完成配置后,该机器上所有接口/客户端连接数据库时均屏蔽保留字PUBLIC,仅通过L服务名连接数据库时屏蔽[L]服务名下的KEYWORDSKEY_WORDS中定义的保留字。

重点关注以下问题:

📌
  • 连接数据库的接口、客户端工具、应用服务必须与dm_svc.conf在同一台机器上
  • 要使服务名下的配置生效,必须通过服务名连接,jdbc连接串示例如下:
jdbc:dm://L #本例中等价于jdb:dm://LOCALHOST:5236
  • 同时配置了KEYWORDSKEY_WORDS配置项后,仅KEY_WORDS定义的保留字生效。下面逐一验证:
  • 通过服务名连接数据库时,服务名中KEYWORDS配置项会覆盖全局配置中KEYWORDS配置项
  • 配置完成后,重新连接方可生效
--通过disql工具连接验证,先到disql所在目录
cd /dm/dmdbms/bin
--首先不通过服务名登陆
./disql SYSDBA@localhost:5236
--输入密码后成功登陆
--测试全局配置用保留字PUBLIC创建表
create table test.public(c1 int); --操作已执行,用保留字PUBLIC创建表
--再尝试用服务名中配置的保留字ADD创建表,执行失败
CREATE TABLE TEST.ADD(C1 INT);
--上述语句执行报错:第 1 行, 第 18 列[ADD]附近出现错误[-2007]:语法分析出错.

--退出当前disql会话
exit
--再通过服务名连接数据库
./disql SYSDBA@L
--再次尝试创建表ADD,包含列ARRAYLEN
CREATE TABLE TEST.ADD(C1 INT,ARRAYLEN INT); --操作已执行,建表成功,KEY_WORDS均生效
--尝试使用KEYWORDS配置项中的保留字创建表,执行失败,KEYWORDS未生效
CREATE TABLE TEST.GOTO(C1 INT,BOTH BIT);
--上述语句执行报错:第 1 行, 第 18 列[GOTO]附近出现错误[-2007]:语法分析出错.
--删除表PUBLIC,验证全局配置有效性
DROP TABLE TEST.PUBLISH;
--上述语句执行报错:第 1 行, 第 16 列[PUBLIC]附近出现错误[-2007]:语法分析出错.
--全局配置中KEYWORDS不再生效

--退出当前disql会话
exit
--修改dm_svc.conf内容
vim /etc/dm_svc.conf

dm_svc.conf内容保存如下:

TIME_ZONE=(480)
LANGUAGE=(CN)
L=(LOCALHOST:5236)
KEYWORDS=(PUBLIC)

[L]
KEYWORDS=(GOTO,BOTH)
#KEY_WORDS=(ADD,ARRAYLEN)

再次连接服务L,并验证KEYWORDS有效性

--通过服务名L连接数据库
./disql SYSDBA@L
--创建含有BOTH列的表GOTO,验证KEYWORDS配置是否生效
CREATE TABLE TEST.GOTO(C1 INT, BOTH BIT); --操作已执行,建表成功,KEYWORDS生效

该方案同样可对数据库预定保留字生效,灵活度高,对数据库服务本身无影响,且改造成本较低,较为推荐。但在应用服务器较多或应用服务节点需要频繁扩展时使用起来较为繁琐,容易遗漏,通过容器化部署添加统一配置文件则可解决该问题。

d. 服务端配置文件dm.ini

达梦数据库服务端配置文件dm.ini中包含参数EXCLUDE_RESERVED_WORDS可专门用于屏蔽对应数据库实例的保留字。使用该方法进行保留字屏蔽需要注意事项如下:

📌

     i. 仅当V$RESERVED_WORDS视图中对应保留字RES_FIXED值为'N'时,屏蔽方可生效;

    ii.调整EXCLUDE_RESERVED_WORDS参数后,必须重启数据库服务方可生效。

    iii.屏蔽完成后,V$RESERVED_WORDS视图中无法再查到对应保留字;

    iv.屏蔽后数据库服务中相应保留字原本对应的特性或用途不再生效,如用该方法将保留字“CALL”屏蔽以后,就无法使用CALL语法调用存储函数或存储过程;

下面以系统预定保留字WINDOW(RESERVED='Y' AND RES_FIXED='Y')和非预定保留字CALL,CAST(RESERVED='Y' AND RES_FIXED='N')进行配置和验证。

首先查看V$RESERVED_WORDS视图确认保留字状态

SELECT * FROM V$RESERVED_WORDS WHERE KEYWORD IN('CALL','CAST','WINDOW');

视图中仍能查到对应保留字,如下图:

然后调整EXCLUDE_RESERVED_WORDS参数。有两种调整方法:

    1)直接修改dm.ini文件

--编辑数据库实例对应的dm.ini文件,本例中路径为/dm/dmdbms/data/DAMENG
vi /dm/dmdbms/data/DAMENG/dm.ini
--输入?EXCLUDE_RESERVED查找定位到对应配置项,注意大小写

定位到EXCLUDE_RESERVED_WORDS参数如下图所示:

修改该配置如下,修改完成后保存文件退出:

EXCLUDE_RESERVED_WORDS          = CALL,CAST,WINDOW

    2) 用数据库系统过程SP_SET_PARA_STRING_VALUE()修改

--通过数据库管理工具连接到对应数据库DBA用户
--使用SP_SET_PARA_STRING_VALUE(scope,paraname,value)
SP_SET_PARA_STRING_VALUE(2,'EXCLUDE_RESERVED_WORDS','CALL,CAST,WINDOW');

确认服务器配置文件dm.ini相应参数变更

#查看dm.ini文件中EXCLUDE_RESERVED_WORDS参数配置情况,本例文件于/dm/dmdbms/data/DAMENG
cat /dm/dmdbms/data/DAMENG/dm.ini|grep EXCLUDE_RESERVED_WORDS
#确认返回如下即修改配置成功:
#EXCLUDE_RESERVED_WORDS        = CALL,WINDOW,CAST #Reserved words to be exclude

两种配置方法配置完成后,均需重启数据库服务方可生效。

重启数据库服务后,再次查询V$RESERVED_WORDS视图确认保留字状态,执行结果如下图:

已无法查到非系统预定保留字CALL,CAST,仍可查到系统预定保留字WINDOWCALLCAST均屏蔽成功,WINDOW无法屏蔽。下面通过建表进行进一步验证:

--创建含CALL列的CAST表
CREATE TABLE TEST.CAST(C1 INT, CALL VARCHAR(10)); --操作已执行,成功建表,屏蔽生效
--为CAST表添加WINDOW列
ALTER TABLE TEST.CAST ADD COLUMN WINDOW VARCHAR(100);
--上述语句执行报错:第 1 行, 第 33 列[WINDOW]附近出现错误[-2007]:语法分析出错.  --屏蔽无效

下面验证屏蔽后对保留字的影响,以CALL为例。原本CALL可用于调用数据库中的函数或存储过程,用自定义的存储函数尝试:

--先用CALL调用看能否正常执行,用查询系统发型版本的函数ID_CODE测试
CALL ID_CODE();
/**
[执行语句1]:
CALL ID_CODE();
执行失败(语句1)
-2007: 第 44 行, 第 5 列[ID_CODE]附近出现错误: 
语法分析出错

1条语句执行失败
**/
--通过SELECT执行
SELECT ID_CODE()
/**返回数据库系统发型版本号
[执行语句1]:
SELECT ID_CODE();
执行成功, 执行耗时1毫秒. 执行号:1055

1条语句执行成功
**/

被屏蔽掉的关键字CALL的语法无法使用了。

第1章结构化查询语言DM_SQL简介 ................................................................................................. 1 1.1 DM_SQL语言的特点 ................................................................................................................. 1 1.2 保留字与标识符 ........................................................................................................................ 2 1.3 DM_SQL语言的功能及语句 ..................................................................................................... 2 1.4 DM_SQL所支持的数据类型 ..................................................................................................... 3 1.4.1 常规数据类型 .................................................................................................................... 3 1.4.2 日期时间数据类型 ............................................................................................................ 6 1.4.3 多媒体数据类型 ................................................................................................................ 9 1.4.4 数据类型别名 .................................................................................................................... 9 1.5 DM_SQL语言支持的表达式 ..................................................................................................... 9 1.5.1 数值表达式 ...................................................................................................................... 10 1.5.2 字符串表达式 .................................................................................................................. 11 1.5.3 时间值表达式 .................................................................................................................. 12 1.5.4 时间间隔值表达式 .......................................................................................................... 13 1.5.5 运算符的优先级 .............................................................................................................. 14 1.6 DM_SQL语言支持的数据库模式 ........................................................................................... 15 第2章本手册中的实例说明 ............................................................................................................... 16 2.1 实例库说明 .............................................................................................................................. 16 2.2 参考脚本 ................................................................................................................................. 24 第3章数据定义语句 ........................................................................................................................... 42 3.1 数据库定义语句 ...................................................................................................................... 42 3.2 数据库修改语句 ...................................................................................................................... 44 3.3 数据库删除语句 ...................................................................................................................... 46 3.4 设置当前数据库语句 .............................................................................................................. 46 3.5 登录定义语句 .......................................................................................................................... 47 3.6 登录修改语句 .......................................................................................................................... 51 3.7 登录删除语句 .......................................................................................................................... 53 3.8 用户定义语句 .......................................................................................................................... 53 3.9 用户修改语句 .......................................................................................................................... 54 3.10 用户删除语句 ........................................................................................................................ 54 3.11 模式定义语句 ........................................................................................................................ 55 3.12 设置当前模式语句 ................................................................................................................ 56 3.13 模式删除语句 ........................................................................................................................ 57 3.14 基表定义语句 ........................................................................................................................ 57 3.15 基表修改语句 ........................................................................................................................ 68 3.16 基表删除语句 ..................................................................................................................... 74 3.17 全表删除语句 ........................................................................................................................ 75 3.18 索引定义语句 ........................................................................................................................ 76 3.19 索引删除语句 ........................................................................................................................ 78 3.20 序列定义语句 ........................................................................................................................ 79 3.21 序列删除语句 ........................................................................................................................ 80 3.22 全文索引定义语句 ................................................................................................................ 81 3.23 全文索引修改语句 ................................................................................................................ 81 3.24 全文索引删除语句 ................................................................................................................ 82 II 3.25 数据库快照定义语句 ............................................................................................................ 83 3.26 数据库快照删除语句 ............................................................................................................ 84 第4章数据查询语句和全文检索语句 ............................................................................................... 85 4.1 单表查询 ................................................................................................................................. 91 4.1.1 简单查询 .......................................................................................................................... 91 4.1.2 带条件查询 ...................................................................................................................... 92 4.1.3 集函数 .............................................................................................................................. 94 4.1.4 情况表达式 ...................................................................................................................... 96 4.2 连接查询 ................................................................................................................................. 98 4.3 子查询 ................................................................................................................................... 105 4.3.1 标量子查询 .................................................................................................................... 106 4.3.2 表子查询 ........................................................................................................................ 107 4.3.3 派生表子查询 ................................................................................................................ 109 4.3.4 定量比较 ........................................................................................................................ 110 4.3.5 带EXISTS谓词的子查询 ............................................................................................... 111 4.3.6 多列表子查询 ................................................................................................................ 112 4.4 查询结果的合并 .....................................................................................................................113 4.5 GROUP BY和HAVING子句 ...................................................................................................114 4.5.1 GROUP BY子句的使用 ................................................................................................. 114 4.5.2 HAVING子句的使用 ...................................................................................................... 115 4.6 ORDER BY子句 ......................................................................................................................116 4.7 选取前几条数据 .....................................................................................................................117 4.8 选取其中几条数据 .................................................................................................................117 4.9 全文检索 ................................................................................................................................118 4.10 层次查询 .............................................................................................................................. 120 4.10.1 层次查询子句 .............................................................................................................. 120 4.10.2 层次查询相关伪列 ...................................................................................................... 121 4.10.3 层次查询相关操作符 .................................................................................................. 121 4.10.4 层次查询相关函数 ...................................................................................................... 121 4.11 查看执行计划 ...................................................................................................................... 125 第5章数据的插入、删除和修改 ..................................................................................................... 126 5.1 数据插入语句 ........................................................................................................................ 126 5.2 数据修改语句 ........................................................................................................................ 129 5.3 数据删除语句 ........................................................................................................................ 130 5.4 伪列的使用 ............................................................................................................................ 131 5.4.1 ROWID ........................................................................................................................... 131 5.4.2 UID和USER .................................................................................................................... 132 5.4.3 ROWNUM ...................................................................................................................... 132 5.5 DM自增列的使用 ................................................................................................................... 132 5.5.1 DM自增列定义 ............................................................................................................... 132 5.5.2 SET IDENTITY_INSERT 属性 ..................................................................................... 133 第6章视图 ........................................................................................................................................ 136 6.1 视图的作用 .......................................................................................................................... 136 6.2 视图的定义 ............................................................................................................................ 137 6.3 视图的删除 ............................................................................................................................ 139 6.4 视图的查询 ............................................................................................................................ 140 III 6.5 视图数据的更新 .................................................................................................................... 141 第7章嵌入式SQL ............................................................................................................................. 143 7.1 SQL前缀和终结符 ................................................................................................................. 143 7.2 宿主变量 ............................................................................................................................... 143 7.2.1 输入和输出变量 ............................................................................................................ 144 7.2.2 指示符变量 .................................................................................................................... 145 7.3 服务器登录与退出 ................................................................................................................ 145 7.3.1 登录服务器 .................................................................................................................... 145 7.3.2 退出服务器 .................................................................................................................... 146 7.4 游标的定义与操纵 ................................................................................................................ 146 7.4.1 定义游标语句 ................................................................................................................ 147 7.4.2 打开游标语句 ................................................................................................................ 147 7.4.3 拨动游标语句 ................................................................................................................ 148 7.4.4 关闭游标语句 ................................................................................................................ 150 7.4.5 关于可更新游标 ............................................................................................................ 150 7.4.6 游标定位删除语句 ........................................................................................................ 150 7.4.7 游标定位修改语句 ........................................................................................................ 151 7.5 单元组查询语句 .................................................................................................................... 152 7.6 动态SQL ............................................................................................................................... 153 7.6.1 EXECUTE IMMEDIATE立即执行语句 ........................................................................ 154 7.6.2 PREPARE准备语句 ........................................................................................................ 155 7.6.3 EXCUTE执行语句 ......................................................................................................... 155 7.7 异常处理 ............................................................................................................................... 156 第8章函数 ........................................................................................................................................ 157 8.1 数值函数 ............................................................................................................................... 166 8.2 字符串函数 ............................................................................................................................ 173 8.3 日期时间函数 ........................................................................................................................ 184 8.4 空值判断函数 ........................................................................................................................ 193 8.5 类型转换函数 ........................................................................................................................ 194 8.6 杂类函数 ............................................................................................................................... 195 8.7 系统函数 ............................................................................................................................... 196 8.8 存储加密函数 ........................................................................................................................ 215 8.9 标记处理函数 ........................................................................................................................ 222 8.10 备份恢复函数 ...................................................................................................................... 223 8.11 附加分离数据库 .................................................................................................................. 230 第9章一致性和并发性 ..................................................................................................................... 233 9.1 DM事务相关语句 ................................................................................................................... 233 9.1.1 事务的开始 .................................................................................................................... 233 9.1.2 事务的结束 .................................................................................................................... 233 9.1.3 保存点相关语句 ............................................................................................................ 234 9.1.4 设置事务隔离级及读写特性 ........................................................................................ 235 9.2 DM手动上锁语句 ................................................................................................................... 236 第10章存储模块 ............................................................................................................................... 238 10.1 存储模块的定义 .................................................................................................................. 238 10.2 存储模块的删除 .................................................................................................................. 246 10.3 存储模块的控制语句 .......................................................................................................... 247 IV 10.3.1 语句块 .......................................................................................................................... 247 10.3.2 赋值语句 ...................................................................................................................... 249 10.3.3 条件语句 ...................................................................................................................... 249 10.3.4 循环语句 ...................................................................................................................... 250 10.3.5 EXIT语句 ...................................................................................................................... 252 10.3.6 调用语句 ...................................................................................................................... 253 10.3.7 RETURN语句 ............................................................................................................... 255 10.3.8 NULL语句 .................................................................................................................... 255 10.3.9 GOTO语句 .................................................................................................................... 255 10.3.10 RAISE语句 ................................................................................................................. 256 10.3.11 打印语句 .................................................................................................................... 256 10.4 存储模块的异常处理 .......................................................................................................... 256 10.4.1 异常变量的说明 .......................................................................................................... 257 10.4.2 异常的抛出 .................................................................................................................. 257 10.4.3 异常处理器 .................................................................................................................. 257 10.4.4 异常处理用法举例 ...................................................................................................... 257 10.5 存储模块的SQL语句 .......................................................................................................... 259 10.5.1 游标 .............................................................................................................................. 259 10.5.2 动态SQL ...................................................................................................................... 260 10.5.3 游标变量 ...................................................................................................................... 261 10.5.4 返回查询结果集 .......................................................................................................... 261 10.5.5 SQL语句应用举例 ........................................................................................................ 261 10.6 客户端存储模块 .................................................................................................................. 264 10.7 子过程、子函数 .................................................................................................................. 265 10.7.1 子过程 .......................................................................................................................... 265 10.7.2 子函数 .......................................................................................................................... 266 10.8 %TYPE、%ROWTYPE ....................................................................................................... 266 10.8.1 %TYPE .......................................................................................................................... 266 10.8.2 %ROWTYPE ................................................................................................................ 267 10.9 记录类型 .............................................................................................................................. 267 10.9.1 记录类型定义 .............................................................................................................. 267 10.9.2 记录赋值 ...................................................................................................................... 268 第11章触发器 .................................................................................................................................. 270 11.1 触发器的定义 ...................................................................................................................... 270 11.1.1 触发器类型 .................................................................................................................. 277 11.1.2 触发器激发顺序 .......................................................................................................... 279 11.1.3 新、旧行值的引用 ...................................................................................................... 280 11.1.4 触发器谓词 .................................................................................................................. 281 11.1.5 变异表 .......................................................................................................................... 282 11.1.6 设计触发器的原则 ...................................................................................................... 283 11.2 触发器的删除 ...................................................................................................................... 284 11.3 禁止和允许触发器 .............................................................................................................. 284 11.4 触发器应用举例 .................................................................................................................. 286 11.4.1 使用触发器实现审计功能 .......................................................................................... 286 11.4.2 使用触发器维护数据完整性 ...................................................................................... 286 11.4.3 使用触发器保障数据安全性 ...................................................................................... 287 V 11.4.4 使用触发器派生字段值 .............................................................................................. 288 第12章DM安全管理 ..................................................................................................................... 289 12.1 创建角色语句 ...................................................................................................................... 289 12.2 删除角色语句 ...................................................................................................................... 290 12.3 授权语句(数据库权限) ....................................................................................................... 290 12.4 授权语句(对象权限) ........................................................................................................... 291 12.5 授权语句(角色权限) ........................................................................................................... 295 12.6 回收权限语句(数据库权限) ............................................................................................... 295 12.7 回收权限语句(对象权限) ................................................................................................... 297 12.8 回收权限语句(角色权限) ................................................................................................... 299 12.9 策略与标记管理 .................................................................................................................. 300 12.9.1 创建策略 ...................................................................................................................... 300 12.9.2 修改策略 ...................................................................................................................... 300 12.9.3 删除策略 ...................................................................................................................... 302 12.9.4 安全标记 ...................................................................................................................... 302 12.9.5 用户标记设置语句 ...................................................................................................... 303 12.9.6 表标记设置语句 .......................................................................................................... 306 12.10 审计设置语句 .................................................................................................................... 308 12.11 审计取消语句 .................................................................................................................... 312 12.12 审计信息查阅语句 ............................................................................................................ 314 12.13 审计分析 ............................................................................................................................ 314 12.13.1 创建审计分析规则 .................................................................................................... 314 12.13.2 删除审计分析规则 .................................................................................................... 316 12.14加密引擎 ............................................................................................................................. 316 12.14.1 创建加密引擎 ............................................................................................................ 316 12.14.2 修改加密引擎 ............................................................................................................ 317 12.14.3 删除加密引擎 ............................................................................................................ 320 第13章外部链接 ............................................................................................................................... 321 13.1 创建外部链接 ...................................................................................................................... 321 13.2 删除外部链接 ...................................................................................................................... 322 13.3 使用外部连接进行远程对象操作 ...................................................................................... 322 第14章DM备份还原 ......................................................................................................................... 324 14.1 备份数据库 .......................................................................................................................... 324 14.2 还原数据库 .......................................................................................................................... 325 第15章包 ......................................................................................................................................... 327 15.1 创建包 ................................................................................................................................. 327 15.1.1 创建包规范 .................................................................................................................. 327 15.1.2 创建包主体 .................................................................................................................. 327 15.2 删除包 ................................................................................................................................. 328 15.2.1 删除包规范 .................................................................................................................. 328 15.2.2 删除包主体 .................................................................................................................. 329 15.3 应用实例 .............................................................................................................................. 329 第16章同义词 .................................................................................................................................. 332 16.1 创建同义词 .......................................................................................................................... 332 16.2 删除同义词 .......................................................................................................................... 332 附录1 关键字保留字 ...................................................................................................................... 334 VI 附录2 SQL语法描述说明 ................................................................................................................... 338 附录3 SQL命令参考 ........................................................................................................................... 341 附录4系统存储过程和函数 ............................................................................................................... 343 附录5 DM技术支持 ............................................................................................................................ 387
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值