达梦
达梦
1. 产品简介
DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,推出的新一代自研数据库。
DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。
2. 安装配置
试用下载:https://www.dameng.com/list_103.html
详细的安装配置流程请参考达梦官方文档:安装手册
注意
正式版本获取及安装部署支持,请联系达梦官方。
3. 常用配置
3.1 屏蔽关键字
在达梦数据库(DM)中,EXCLUDE_RESERVED_WORDS
参数用于屏蔽指定的保留关键字,允许用户将原本被系统保留的关键字用作数据库对象名(如表名、字段名等)。以下是关于该参数的详细说明及使用方法:
1. 参数作用
- 屏蔽关键字:将某些保留关键字从系统关键字列表中移除,使其在后续的 SQL 操作中不再被解析为关键字。
- 解决命名冲突:当应用迁移或开发中需要使用与达梦关键字冲突的名称时(如字段名、表名),可通过此参数规避语法错误。
2. 配置方法
方法一:通过 dm.ini
文件静态设置
修改配置文件
在dm.ini
文件中添加或修改参数:EXCLUDE_RESERVED_WORDS = 关键字1,关键字2,...
例如屏蔽
BUFFER
和COMMENT
:EXCLUDE_RESERVED_WORDS = BUFFER,COMMENT
注意:需重启数据库生效。
验证配置
执行 SQL 查询当前参数值:SELECT * FROM V$DM_INI WHERE PARA_NAME = 'EXCLUDE_RESERVED_WORDS';
方法二:通过 SQL 动态设置
使用 SP_SET_PARA_STRING_VALUE
存储过程动态修改参数(需重启生效):
SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS', 'BUFFER,COMMENT');
注意:此方法修改的参数需重启数据库才能生效。
方法三:通过 dm_svc.conf
客户端配置
在客户端配置文件 dm_svc.conf
中添加 KEYWORDS
配置项(适用于连接时屏蔽关键字):
[dm]
KEYWORDS=(BUFFER,COMMENT)
注意:此配置仅对当前客户端连接生效,且需与数据库端配置区分。
3. 关键字状态查询
通过系统视图 V$RESERVED_WORDS
可查看关键字状态:
SELECT KEYWORD, RESERVED, RES_FIXED FROM V$RESERVED_WORDS WHERE KEYWORD = 'BUFFER';
- RES_RESERVED:是否为保留字(
Y
表示保留)。 - RES_FIXED:是否可屏蔽(
N
表示可屏蔽,Y
表示不可屏蔽)。
4. 注意事项
优先避免使用关键字
建议在设计数据库对象时避免使用关键字,若必须使用,需用双引号包裹(如CREATE TABLE T1 ("COMMENT" INT)
)。屏蔽关键字的限制
- 不可屏蔽系统核心关键字:
RES_FIXED=Y
的关键字(如IDENTITY
)无法屏蔽,否则可能导致功能异常(如自增列失效)。 - 兼容性风险:屏蔽关键字可能影响跨数据库兼容性,需谨慎操作。
- 不可屏蔽系统核心关键字:
多方法协同使用
若需全局屏蔽关键字,推荐结合dm.ini
和dm_svc.conf
配置;临时需求可使用 SQL 动态设置。
5. 示例场景
问题:迁移 Oracle 表时字段名 COMMENT
冲突。
解决:
- 屏蔽
COMMENT
关键字:SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS', 'COMMENT');
- 重启数据库后,直接使用
COMMENT
作为字段名:CREATE TABLE T1 (COMMENT VARCHAR(20));
总结
EXCLUDE_RESERVED_WORDS
是达梦数据库兼容性设计的重要参数,适用于迁移或特殊命名场景。使用时需结合双引号转义、视图查询及配置文件管理,避免影响核心功能。建议优先通过官方网页确认关键字状态,并遵循最小化屏蔽原则。