暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】达梦数据库关键字屏蔽

达梦E学 2022-07-15
5203

-----正文-----

应用系统数据从其他数据库迁移到达梦时可能会遇到表名、字段名等是达梦的关键字,从而导致查询报错。为了数据库兼容,可以选择屏蔽部分达梦的关键字。本文将讨论如何查看达梦关键字,以及屏蔽关键字的两种常用方法,帮助数据库管理人员更好的使用达梦数据库。

环境说明:

据库版本:DM8

关键词:关键字屏蔽


一、查看达梦关键字

查看视图V$RESERVED_WORD获取DM关键字

    SQL> select keyword,reserved from v$reserved_words;

    以关键字LIST为例,由于LIST是关键字,所以作为列的别名时sql会报语法分析错误。

      SQL> select username list from dba_users;
      select username list from dba_users;


      select username list from dba_users;
      *
      1 行, 第 34 列[list]附近出现错误[-2007]:
      语法分析出错.

      查看LIST是否存在DM关键字中

        SQL> select keyword,reserved from v$reserved_words where keyword='LIST';


        行号 KEYWORD RESERVED
        ---------- ------- --------
        1 LIST Y


        二、达梦数据库屏蔽关键字的两种方法
        2.1 方法一:通过设置参数参数屏蔽关键字

        设置EXCLUDE_RESERVED_WORDS参数值为要屏蔽的关键字,重启数据库实例生效。

          SQL> SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS','LIST');
          [dmdba@localhost bin]$ ./DmServicePROD restart

          生效后再查看视图V$RESERVED_WORDS中已经没有LIST;

            SQL> select keyword,reserved from v$reserved_words where keyword='LIST';
            未选定行

            此时LIST关键字被屏蔽,可以作为列名使用。

              SQL> select username list from dba_users;




              行号 LIST
              ---------- ----------
              1 SYSSSO
              2 TEST
              3 SYSDBA
              4 SYS
              5 SYSAUDITOR

              2.2 方法二:通过配置dm_svc.conf文件来屏蔽关键字

              32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32 目录;

              64 位的 DM 安装在Win64 操作平台下,此文件位于%SystemRoot%\system32 目录;

              32 位的 DM 安装在 Win64操作平台下,此文件位于%SystemRoot%\SysWOW64 目录;

              在 Linux 平台下,此文件位于/etc 目录。

              以linux为例:

                [dmdba@localhost ~]$ vi etc/dm_svc.conf
                添加以下内容:(其中dm为自定义服务名)
                  dm=(192.168.45.102:5237)
                  [dm]
                  KEYWORDS=(LIST) ##多个关键字以逗号隔离

                  用服务名登录达梦数据库;

                    [dmdba@localhost bin]$ ./disql sysdba/Dameng123@dm

                    查看关键字屏蔽是否生效。

                      SQL> select username list from dba_users;


                      行号 LIST
                      ---------- ----------
                      1 SYSSSO
                      2 TEST
                      3 SYSDBA
                      4 SYS
                      5 SYSAUDITOR

                      >>> THE END <<<

                      好,以上是本期干货分享内容,希望能给大家带来帮助。



                       
                       


                      相关推荐

                      干货 | 达梦数据库异地备份的方式和策略
                      干货 | 达梦数据库归档清理
                      干货 | 使用PowerDesigner工具连接达梦数据库
                      开班 | 达梦DM8-DCA在线认证培训开班通知
                      开班达梦DM8-DCP开班招生中
                      内容丨李金峰
                      审核丨
                      编辑丨Hh

                      文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论