达梦数据库运维-SQL报错-语法错误 2007

在使用达梦数据库过程中,很多人经常会发现在执行某SQL语句的时候,会出现类似于以下问题的报错,报错信息为
某列附近出现错误[-2007],语法分析出错;
在这里插入图片描述

当遇到这种情况,我们大致的排查思路是这样的:

方法1、

确认语法是否正确,如果有其他达梦数据库,可以尝试在其他达梦数据库上运行类似SQL进行验证。

方法2

执行下面语句,查询达梦数据库服务端是否有屏蔽对应关键字,若屏蔽了(PARA_VALUE列有对应值),则在SQL中无法正常使用该关键字作为条件语句。

select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME = 'EXCLUDE_RESERVED_WORDS'

上述方法等价于直接到dm.ini中查询对应参数,但也有区别:

cat /home/dmdba/dmdbms/data/DAMENG/dm.ini |grep EXCLUDE_RESERVED_WORDS

使用此方法也可以查询数据库服务端是否有屏蔽关键字,但若在此删除了关键字而未重启数据库,此参数是不生效的。
所以建议还是使用SQL查询是否在数据库服务端屏蔽了关键字。

方法3

在一些使用服务名对达梦数据库进行连接的情况下,在对应的服务名,也就是/etc/dm_svc.conf(windows为C:/windows/system32/dm_svc.conf)中,设置有KEY_WORDS参数,此参数后面接的也是屏蔽关键字,若此处屏蔽了对应关键字,效果等同于第二条,则在SQL中也无法正常使用该关键字作为条件语句。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐