注册
达梦数据库如何屏蔽关键字
技术分享/ 文章详情 /

达梦数据库如何屏蔽关键字

JC 2025/09/26 104 0 0

在达梦数据库中屏蔽 MODEL 等关键字,可通过以下步骤实现:


方法一:通过 SQL 语句动态设置(需重启生效)

  1. 执行系统函数设置参数
    使用 SP_SET_PARA_STRING_VALUE 函数将 MODEL 添加到排除列表:

    SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS', 'MODEL');
    • 参数说明:
      • 2 仅修改 dm.ini 文件(静态参数或动态参数均适用,需重启生效);
      • 'EXCLUDE_RESERVED_WORDS' 为达梦保留字屏蔽参数;
      • 'MODEL' 为需屏蔽的关键字。
  2. 重启数据库服务
    该参数为静态参数,修改后需重启数据库生效。

  3. 验证参数生效
    查询动态视图确认参数值:

    SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = 'EXCLUDE_RESERVED_WORDS';

方法二:修改 dm.ini 配置文件

  1. 编辑 dm.ini 文件
    找到达梦数据库安装路径下的 dm.ini 文件,添加或修改以下参数:

    EXCLUDE_RESERVED_WORDS = MODEL
  2. 重启数据库服务
    修改配置文件后需重启数据库使参数生效。

  3. 验证参数生效
    查询动态视图确认参数值:

    SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME = 'EXCLUDE_RESERVED_WORDS';

方法三:使用 dm_svc.conf 实现关键字屏蔽的方案

配置步骤

  1. 编辑应用服务器上的 /etc/dm_svc.conf 文件(不存在可创建)
    在客户端配置文件中添加 KEYWORDS 参数,指定需屏蔽的关键字(支持大小写兼容):

    KEYWORDS=(MODEL, model, DOMAIN, domain)
    • 参数说明
      • KEYWORDS 用于屏蔽数据库关键字,避免 SQL 语法冲突。
      • 建议同时包含关键字的大写和小写形式,确保兼容性。
  2. 重启应用系统,保障读取到更改后的配置文件


注意事项

  1. 作用范围

    • dm_svc.conf 的配置仅影响使用该文件的客户端连接,不影响数据库全局行为。
    • 适用于需要局部屏蔽关键字的场景(如特定应用或工具)。
  2. 优先级规则

    • 若同时存在全局配置(如 dm.ini 中的 EXCLUDE_RESERVED_WORDS)和服务配置区(dm_svc.conf中的服务名区域)的 KEYWORDS,服务配置区的参数优先级更高。
  3. 替代方案

    • 双引号包裹对象名
      若需临时绕过关键字冲突,可对对象名加双引号(需注意大小写敏感问题):

      CREATE TABLE "T1" ("MODEL" INT); SELECT "MODEL" FROM "T1";
    • 修改对象名
      优先推荐将冲突字段名改为非保留字(如 MODEL_INFO)。

  4. 兼容性风险

    • 屏蔽关键字可能导致依赖该关键字的系统功能异常(如内置视图或存储过程),建议在测试环境验证后再生产环境使用。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服