空格字符的错误造成监听无法启动

listener.ora中配置了静态监听: 
这里写图片描述


启动监听,却报了错误: 
这里写图片描述


从提示看,应该很明确,listener.ora文件中SID_LIST_LISTENER指定的参数不正确,但再看所有参数拼写、路径好像都没有错误。

TNS-01155: Incorrectly specified SID_LIST_LISTENER parameter in LISTENER.ORA
NL-00303: syntax error in NV string
  • 1
  • 2
  • 1
  • 2


其实,这次忽视了一点,就是空格字符,光标扫描所有空格,发现确实有空格不是一个字符的位置, 
这里写图片描述


用一个字符的空格替换,重试,一切正常了。 
这里写图片描述


网上搜了一下,杨兄很久前就写过一篇相关的文章,专门介绍了配置文件各种空格位置对监听启动的影响,比较全面,值得玩味。 
《listener.ora,tnsnames.ora中一个空格的威力》 
http://blog.itpub.net/23718752/viewspace-1061787/


总结: 
Oracle的大部分错误提示表达地都会很清楚,简洁的几个字符就可以描述出关键信息,例如这已经明确指出是SID_LIST_LISTENE这个参数中存在语法错误,只是对于这些配置文件,不能忽视空格这种字符,这恐怕就和Oracle解析配置文件中对非空格特殊字符的处理逻辑相关了。

请使用浏览器的分享功能分享到微信等