本文于 2 天前发布,最后更新于 2 天前
一、系统视图
系统视图:V$RESERVED_WORDS
保留字统计表,记录保留字的分类信息。
RES_FIXED=N 的关键字,通过 ini 参数 EXCLUDE_RESERVED_WORDS 设置之后会失效,此视图不会再记录。
二、查询关键字
通过系统视图查询
SELECT * FROM SYS."V$RESERVED_WORDS" WHERE "V$RESERVED_WORDS".KEYWORD IN ('关键字');
>注:关键字和保留字还可以通过数据库安装路径中doc目录下《DM8_SQL语言使用手册.pdf》的附录1查看。
三、屏蔽关键字
(1)加双引号
SQL中用到的关键字全部用””引起来,例如:
SELECT "AFTER", "BACKUP" FROM TST;
如果使用到关键字涉及的SQL比较多时,可以使用其他方式进行屏蔽。
(2)URL连接字符串
URL连接字符串也可以配置屏蔽关键字:&KEYWORLD=(关键字1,关键字2)。例如:
jdbc:dm://ip地址:5236/DAMENG?KEYWORDS=(XXXX,xxxx)
(3)客户端配置文件dm_svc.conf
在全局部分或者局部服务名后面添加【多个需屏蔽的关键字之间用逗号隔开】
DM1=(IP:PORT)
TIME_ZONE=(480)
LANGUAGE=(cn)
KEYWORDS=(XXXXXX,xxxxxx) #全局
[DM1]
TIME_ZONE=(480)
LANGUAGE=(cn)
KEYWORDS=(XXXXXX,xxxxxx) #局部
注意:若全局和局部均进行了关键字屏蔽配置,局部优先级高于全局。
重启应用生效。
(4)服务端配置文件dm.ini
方法一:直接修改文件
多个需屏蔽的关键字之间用逗号隔开
EXCLUDE_RESERVED_WORDS=屏蔽的关键字, 屏蔽的关键字
方法二:SQL方式修改参数
SP_SET_PARA_STRING_VALUE (2, 'EXCLUDE_RESERVED_WORDS', 'XXXXXX,XXXXXX');
重启数据库服务生效。
另
如果通过(2)(3)(4)方式屏蔽关键字后影响了SQL的正常执行。那么涉及的关键字应当以(1)的方式进行屏蔽。