下划线“_”在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的数值的字符。

猜你喜欢

转载自www.cnblogs.com/hcy-zyy/p/10361108.html