Oracle escape函数的使用
SQL> select * from t_char;A
--------------------
a_b
acb
a%b
a'b
a/b
a\b
%
_
aSQL> select * from t_char where a like 'a_b';A
--------------------
a_b
acb
a%b
a'b
a/b
a\bSQL> select * from t_char where a like 'a\_b' escape '\';A
--------------------
a_b--可见要查询含有通配字符的字符串,必须要使用escape函数 SQL> select * from t_char where a like 'a\'b' escape '\';
ERROR:
ORA-01756: quoted string not properly terminated
SQL> select * from t_char where a like 'a''b' escape '\'; A
--------------------
a'b--但是字符'还是需要用两个''来代替字符串中的单引号 SQL> select * from t_char where a like 'ax_b' escape 'x'; A
--------------------
a_b SQL> select * from t_char where a like 'a''_b' escape ''''; A
--------------------
a_b SQL> select * from t_char where a like 'a_%b' escape '_'; A
--------------------
a%b --可以用其他字符,甚至是“'”、“_”、“%”来用作转义字符,但是一般都使用\,以免发生逻辑错误 SQL> select * from t_char where a like 'a\/b' escape '\';
select * from t_char where a like 'a\/b' escape '\'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character
SQL> select * from t_char where a like 'a_/b' escape '_';
select * from t_char where a like 'a_/b' escape '_'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character SQL> select * from t_char where a like 'a//b' escape '/';A
--------------------
a/bSQL> select * from t_char where a like 'a/\b' escape '/';
select * from t_char where a like 'a/\b' escape '/'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape characterSQL> select * from t_char where a like 'a\\b' escape '\';A
--------------------
a\b
--要搜索"/"或者"\"则必须使用与之相同的符号作为转义字符,否则无效 基本上的使用方法就是这些了,还需要注意一点,这里的escape函数,和sqlplus中的escape环境参数毫无关系
SQL> show escape
escape OFF
--------------------
a_b
acb
a%b
a'b
a/b
a\b
%
_
aSQL> select * from t_char where a like 'a_b';A
--------------------
a_b
acb
a%b
a'b
a/b
a\bSQL> select * from t_char where a like 'a\_b' escape '\';A
--------------------
a_b--可见要查询含有通配字符的字符串,必须要使用escape函数 SQL> select * from t_char where a like 'a\'b' escape '\';
ERROR:
ORA-01756: quoted string not properly terminated
SQL> select * from t_char where a like 'a''b' escape '\'; A
--------------------
a'b--但是字符'还是需要用两个''来代替字符串中的单引号 SQL> select * from t_char where a like 'ax_b' escape 'x'; A
--------------------
a_b SQL> select * from t_char where a like 'a''_b' escape ''''; A
--------------------
a_b SQL> select * from t_char where a like 'a_%b' escape '_'; A
--------------------
a%b --可以用其他字符,甚至是“'”、“_”、“%”来用作转义字符,但是一般都使用\,以免发生逻辑错误 SQL> select * from t_char where a like 'a\/b' escape '\';
select * from t_char where a like 'a\/b' escape '\'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character
SQL> select * from t_char where a like 'a_/b' escape '_';
select * from t_char where a like 'a_/b' escape '_'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape character SQL> select * from t_char where a like 'a//b' escape '/';A
--------------------
a/bSQL> select * from t_char where a like 'a/\b' escape '/';
select * from t_char where a like 'a/\b' escape '/'
*
ERROR at line 1:
ORA-01424: missing or illegal character following the escape characterSQL> select * from t_char where a like 'a\\b' escape '\';A
--------------------
a\b
--要搜索"/"或者"\"则必须使用与之相同的符号作为转义字符,否则无效 基本上的使用方法就是这些了,还需要注意一点,这里的escape函数,和sqlplus中的escape环境参数毫无关系
SQL> show escape
escape OFF
相关推荐
lynjay 2020-06-14
88384957 2020-06-12
zuihaobushi 2020-04-30
xiaohouye 2020-04-20
菇星獨行 2020-04-20
qscool 2020-04-16
Joymine 2020-03-04
CosEmon 2020-03-01
GoatSucker 2020-02-15
Joymine 2020-02-11
twater000 2020-02-01
韩学敏 2019-12-28
retacnyue 2020-01-10
KilluaZoldyck 2020-01-01
czsay 2019-12-31
qingsongzdq 2019-12-30
MFCJCK 2019-12-30
christinzhm 2010-04-29
Rafema 2011-02-13