下划线“_”在oracle中不是单纯的表示下划线的意思,而是表示匹配单一任何字符!


【解决办法】
1.使用 escape() 函数
escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。
例如:我上面的问题可以写成where name like 'ab\_%' escape '\',这个“\”可以改为其他字符


【其他参考方法】
2.使用 instr() 函数辅助判断
instr函数在Oracle/PLSQL中表示返回要截取的字符串在源字符串中的位置;如果找到了,则返回下标(从1开始);如果没有找到,则返回0。


3.使用?ASCII() 函数
ASCII函数表示返回最左边的字符的字符串str的数值。如果str是空字符串,返回0。如果str为NULL,返回NULL。 ASCII()是从0到255的数值的字符。

posted @ 2019-02-11 10:51  闲云野鹤古刹  阅读(2147)  评论(0编辑  收藏  举报