转义SQL中的特殊字符

时间:2012-01-06 20:53:43

标签: sql oracle11g

Oracle中有一种简单的方法可以在SQL语句中转义特殊字符吗? (即%,&,')我在手动转义字符时看到了link,但我认为Oracle可能提供了一种更简单的方法。

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

3 个答案:

答案 0 :(得分:16)

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

要在查找文字字符%和_(而不是它们的多字符和单字符通配符版本)中使用LIKE,您将使用escape条件的like子句:

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

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

答案 1 :(得分:2)

看起来你正在寻找类似命令SET DEFINE OFF的东西,你可以运行它,它会影响整个SQL会话。但是,此命令仅阻止Oracle赋予&符号特殊含义。它不会影响其他特殊字符,例如单引号。

有关转义字符的其他信息的几个链接如下:

https://forums.oracle.com/forums/thread.jspa?threadID=2256637

http://docs.oracle.com/cd/B10501_01/text.920/a96518/cqspcl.htm

答案 2 :(得分:0)

这是关于网络技术的最终答案页面。甚至提供了示例和练习

http://www.techonthenet.com/sql/like.php

相关问题