如何处理/使用Oracle SQL查询中的百分比(%)和符号(&)等特殊字符

W. *_*ier 7 sql oracle special-characters

我需要在SQL查询的LIKE子句中包含特殊字符"%",例如:

Select * From Some_Table Where Field_Name Like 'bla%bla&2';
Run Code Online (Sandbox Code Playgroud)

我该怎么写?

Jef*_*olt 6

如果你想匹配包含 'bla%bla&2' 的 Field_Name 值,那么你需要这样写:

set define off
Select * From Some_Table Where Field_Name Like '%bla\%bla&2%' escape '\';
Run Code Online (Sandbox Code Playgroud)

您可以指定要使用哪个字符来转义后续字符(感谢 mathguy,而不是我)。您还必须set define off防止 sqlplus 尝试替换字符串中的值。

但是,如果您想要匹配与给定字符串完全相等的 Field_Name 值,那么您可以这样做:

set define off
Select * From Some_Table Where Field_Name = 'bla%bla&2';
Run Code Online (Sandbox Code Playgroud)