Underscore在oracle like子句中不起作用

时间:2014-01-27 11:57:17

标签: oracle oracle11g oracle10g

开发时,我使用过&test; %_1'找到' test_123'在喜欢。但在生产环境中它不起作用。使用' escape' \''工作中。是否需要在oracle中设置任何设置?我想在没有逃避的情况下使用' \#39;'。

5 个答案:

答案 0 :(得分:26)

在SQL Developer中尝试:

SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%' escape '\'

在sql plus中:

set escape '\'
SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%';

答案 1 :(得分:1)

对我来说,这已经奏效了(使用^作为转义符):

select * from all_tables where  table_name  not like '%^_%' escape '^' ;

答案 2 :(得分:0)

在Oracle中,您也可以像这样使用ESCAPE

SELECT * FROM name_of_table WHERE description LIKE 'testing\_%' ESCAPE '\';

答案 3 :(得分:0)

使用ESCAPE '\'的其他答案对我不起作用,但是我可以通过使用REPLACE函数来克服此问题:

SELECT * FROM name_of_table WHERE REPLACE(description, '_', '~') LIKE 'testing~%';

答案 4 :(得分:0)

使用 _ 作为转义字符并在类似条件下使用双 _ 对我有用。

如果要添加更多条件,请在 LIKE 条件后放置 ESCAPE 关键字。

SELECT * FROM USER_TABLES WHERE TABLE_NAME LIKE '%__%' ESCAPE '_' AND ...