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