Underscore在oracle like子句中不起作用

Ram*_*esh 16 oracle oracle10g oracle11g

开发时,我使用'test_1%'来查找'test_123'.但在生产环境中它不起作用.使用'escape'\''正在运行.是否需要在oracle中设置任何设置?我想在不逃避的情况下使用'\''.

Ham*_*eza 28

在SQL Developer中试试这个:

SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%' escape '\'
Run Code Online (Sandbox Code Playgroud)

在sql plus中:

set escape '\'
SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%';
Run Code Online (Sandbox Code Playgroud)


Soh*_*N3N 5

在Oracle中,还可以ESCAPE这样使用:

SELECT * FROM name_of_table WHERE description LIKE 'testing\_%' ESCAPE '\';
Run Code Online (Sandbox Code Playgroud)


lau*_*dly 5

使用的其他答案ESCAPE '\'对我来说不起作用,但我能够通过使用 REPLACE 函数来克服这个问题:

SELECT * FROM name_of_table WHERE REPLACE(description, '_', '~') LIKE 'testing~%';
Run Code Online (Sandbox Code Playgroud)