在达梦数据库中屏蔽 MODEL
等关键字,可通过以下步骤实现:
执行系统函数设置参数
使用 SP_SET_PARA_STRING_VALUE
函数将 MODEL
添加到排除列表:
SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS', 'MODEL');
2
仅修改 dm.ini
文件(静态参数或动态参数均适用,需重启生效);'EXCLUDE_RESERVED_WORDS'
为达梦保留字屏蔽参数;'MODEL'
为需屏蔽的关键字。重启数据库服务
该参数为静态参数,修改后需重启数据库生效。
验证参数生效
查询动态视图确认参数值:
SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = 'EXCLUDE_RESERVED_WORDS';
编辑 dm.ini 文件
找到达梦数据库安装路径下的 dm.ini
文件,添加或修改以下参数:
EXCLUDE_RESERVED_WORDS = MODEL
重启数据库服务
修改配置文件后需重启数据库使参数生效。
验证参数生效
查询动态视图确认参数值:
SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = 'EXCLUDE_RESERVED_WORDS';
dm_svc.conf
实现关键字屏蔽的方案编辑应用服务器上的 /etc/dm_svc.conf
文件(不存在可创建)
在客户端配置文件中添加 KEYWORDS
参数,指定需屏蔽的关键字(支持大小写兼容):
KEYWORDS=(MODEL, model, DOMAIN, domain)
KEYWORDS
用于屏蔽数据库关键字,避免 SQL 语法冲突。重启应用系统,保障读取到更改后的配置文件
作用范围
dm_svc.conf
的配置仅影响使用该文件的客户端连接,不影响数据库全局行为。优先级规则
dm.ini
中的 EXCLUDE_RESERVED_WORDS
)和服务配置区(dm_svc.conf中的服务名区域)的 KEYWORDS
,服务配置区的参数优先级更高。替代方案
双引号包裹对象名:
若需临时绕过关键字冲突,可对对象名加双引号(需注意大小写敏感问题):
CREATE TABLE "T1" ("MODEL" INT);
SELECT "MODEL" FROM "T1";
修改对象名:
优先推荐将冲突字段名改为非保留字(如 MODEL_INFO
)。
兼容性风险
文章
阅读量
获赞