在SQL中转义特殊字符

7

在Oracle中有没有一种简单的方法来转义SQL语句中的特殊字符?(例如%,&,')我看到了这个链接,其中提到手动转义字符,但我认为Oracle可能会提供更简单的方式。

注意:我通过ORM生成动态SQL select语句。


唯一需要“转义”的是字符字面值内部的单引号。您提到的其他任何字符都不是需要转义的“特殊字符”。 - user330315
1
@a_horse_with_no_name 实际上,在使用 WHERE .. LIKE 子句时,百分号(%)和下划线(_)是特殊字符。 - RuntimeException
3个回答

16

如果使用绑定变量和ORM,嵌入的单引号和 & 符号应该自动处理;这些是SQL*Plus或SQL*Developer中的特殊字符。

如果要在LIKE语句中查找字面上的字符 % 和 _ (而不是它们的多字符和单字符通配符版本),则可以使用like条件的escape子句:

select * from my_table where some_text like '/%%' escape '/';

只会返回以百分号符号开头的行。


2

1
&符号被SQL*Plus客户端所识别,但它并不是实际数据库服务器的特殊字符。 - user330315

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接