标签:DM RESERVED LIST 关键字 屏蔽 WORDS SQL select
通过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.
标签:DM,RESERVED,LIST,关键字,屏蔽,WORDS,SQL,select 来源: https://blog.csdn.net/qcc_odd/article/details/120706986
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。