达梦数据库关键字屏蔽
应用系统数据从其他数据库迁移到达梦时可能会遇到表名、字段名等是达梦的关键字,从而导致查询报错。为了数据库兼容,可以选择屏蔽部分达梦的关键字。本文将讨论如何查看达梦关键字,以及屏蔽关键字的两种常用方法,帮助数据库管理人员更好的使用达梦数据库。
环境说明:
数据库版本:DM8;
关键词:关键字屏蔽
一、查看达梦关键字
查看视图V$RESERVED_WORD获取DM关键字
1 | SQL> select keyword,reserved from v$reserved_words; |
以关键字LIST为例,由于LIST是关键字,所以作为列的别名时sql会报语法分析错误。
1 | SQL> select username list from dba_users; |
查看LIST是否存在DM关键字中
1 | SQL> select keyword,reserved from v$reserved_words where keyword='LIST'; |
二、达梦数据库屏蔽关键字的两种方法
2.1 方法一:通过设置参数参数屏蔽关键字
设置EXCLUDE_RESERVED_WORDS参数值为要屏蔽的关键字,重启数据库实例生效。
1 | SQL> SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS','LIST'); |
生效后再查看视图V$RESERVED_WORDS中已经没有LIST;
1 | SQL> select keyword,reserved from v$reserved_words where keyword='LIST'; |
此时LIST关键字被屏蔽,可以作为列别名使用。
1 | SQL> select username list from dba_users; |
2.2 方法二:通过配置dm_svc.conf文件来屏蔽关键字
32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32 目录;
64 位的 DM 安装在Win64 操作平台下,此文件位于%SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64操作平台下,此文件位于%SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于/etc 目录。
以linux为例:
1 | [dmdba@localhost ~]$ vi /etc/dm_svc.conf |
添加以下内容:(其中dm为自定义服务名)
1 | dm=(192.168.45.102:5237) |
用服务名登录达梦数据库;
1 | [dmdba@localhost bin]$ ./disql sysdba/Dameng123@dm |
查看关键字屏蔽是否生效。
SQL> select username list from dba_users;
1 | 行号 LIST |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Zachary's Blog!
评论






