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

应用系统数据从其他数据库迁移到达梦时可能会遇到表名、字段名等是达梦的关键字,从而导致查询报错。为了数据库兼容,可以选择屏蔽部分达梦的关键字。本文将讨论如何查看达梦关键字,以及屏蔽关键字的两种常用方法,帮助数据库管理人员更好的使用达梦数据库。
环境说明:
数据库版本: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
设置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 SYSSSO2 TEST3 SYSDBA4 SYS5 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=(192.168.45.102:5237)[dm]KEYWORDS=(LIST) ##多个关键字以逗号隔离
用服务名登录达梦数据库;
[dmdba@localhost bin]$ ./disql sysdba/Dameng123@dm
查看关键字屏蔽是否生效。
SQL> select username list from dba_users;行号 LIST---------- ----------1 SYSSSO2 TEST3 SYSDBA4 SYS5 SYSAUDITOR
>>> THE END <<<
相关推荐

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




