DM 关键字、屏蔽关键字

通过V$RESERVED_WORDS查看dm关键字
在这里插入图片描述

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

SQL> select * from V$RESERVED_WORDS where keyword='LIST';

行号     KEYWORD LENGTH      RESERVED RES_SQL RES_PL RES_SCHEMA RES_VARIABLE RES_ALIAS RES_FIXED
---------- ------- ----------- -------- ------- ------ ---------- ------------ --------- ---------
1          LIST    4           Y        Y       Y      N          N            N         N

已用时间: 0.762(毫秒). 执行号:1401.

SQL> select id LIST from t1;
select id LIST from t1;

select id LIST from t1;
                     *1,22[LIST]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.166(毫秒). 执行号:0.

Dm屏蔽关键字有两种方法

通过指定EXCLUDE_RESERVED_WORDS参数屏蔽关键字

--设置EXCLUDE_RESERVED_WORDS值为LIST,并重启数据库使其生效

SQL> SP_SET_PARA_STRING_VALUE(2, 'EXCLUDE_RESERVED_WORDS','LIST');
DMSQL 过程已成功完成
已用时间: 8.807(毫秒). 执行号:1403.

--EXCLUDE_RESERVED_WORDS生效后再查看V$RESERVED_WORDS中已经没有LIST了,

SQL> select * from V$RESERVED_WORDS where keyword='LIST';
未选定行

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

已用时间: 0.546(毫秒). 执行号:401.
SQL> select id LIST from t1;

行号     LIST       
---------- -----------
1          1

已用时间: 2.158(毫秒). 执行号:402.

通过配置dm_svc.conf文件来屏蔽关键字

  • 32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32 目录;
  • 64 位的 DM 安装在Win64 操作平台下,此文件位于%SystemRoot%\system32 目录;
  • 32 位的 DM 安装在 Win64操作平台下,此文件位于%SystemRoot%\SysWOW64 目录;
  • 在 Linux 平台下,此文件位于/etc 目录
[dmdba@DM ~]$ vi /etc/dm_svc.conf 
##添加:
dm1=(192.168.3.88:5236) ##ip:port
[dm1] ##自定义服务名
KEYWORDS=(LIST) ##多个关键字以逗号隔离
[dmdba@DM ~]$ disql SYSDBA/SYSDBA@dm1 ##用服务名登录

服务器[192.168.3.88:5236]:处于普通打开状态
登录使用时间 : 1.150(ms)
disql V8
SQL> select id LIST from t1;

行号     LIST       
---------- -----------
1          1

已用时间: 1.806(毫秒). 执行号:600.
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值