Oracle中有一种简单的方法来转义SQL语句中的特殊字符吗? (即%,&,')我在手动转义字符方面看到了这个link,但我认为Oracle可能提供了一个更简单的方法来实现。转义SQL中的特殊字符
注:我通过ORM生成动态SQL select语句。
Oracle中有一种简单的方法来转义SQL语句中的特殊字符吗? (即%,&,')我在手动转义字符方面看到了这个link,但我认为Oracle可能提供了一个更简单的方法来实现。转义SQL中的特殊字符
注:我通过ORM生成动态SQL select语句。
如果使用绑定变量和ORM,嵌入式单引号和&符号应自动移交;这些是SQL * Plus或SQL * Developer中的特殊字符。
使用像在那里寻找文字字符%和_(而不是他们多和单字符通配符的版本),你应该使用escape
条款的like
条件:
select * from my_table where some_text like '/%%' escape '/';
只会返回some_text以百分号开头的行。
看来您正在寻找类似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
&符号由SQL * Plus客户端识别。它不是实际数据库服务器的特殊字符。 – 2012-01-06 21:33:37
这里是技术在网上的权威答案页。即使提供了例子和练习
唯一需要的东西“逃逸”是字面字符内的一个报价。你提到的其他人都不是需要转义的“特殊字符”。 – 2012-01-06 21:32:41
@a_horse_with_no_name实际上,使用WHERE .. LIKE子句时,百分比和下划线是特殊字符。 – RuntimeException 2014-01-31 11:43:33