没有问题啊。
11:21:56 SQL> select * from emp where ename like 'SM\%' escape '\';未选定行已用时间: 00: 00: 00.15
11:22:07 SQL> select 1 from dual where 'SM%' like 'SM\%' escape '\'; 1
----------
1已用时间: 00: 00: 00.31
11:22:40 SQL>
11:21:56 SQL> select * from emp where ename like 'SM\%' escape '\';未选定行已用时间: 00: 00: 00.15
11:22:07 SQL> select 1 from dual where 'SM%' like 'SM\%' escape '\'; 1
----------
1已用时间: 00: 00: 00.31
11:22:40 SQL>
解决方案 »
- 导数据的时候报内存不足如何解决
- 问个内连接和外连接的基础问题呀
- 10G不是已经带RAC吗?为何还有RAC单独的产品?
- 求教动态SQL里的in条件如何绑定进去
- 请教高手,急
- union后面的order by 对什么结果排序
- 如何复制远程记录?
- 请问我已经建立了一个新的数据库,在企业管理器通过独立登陆可以看到,但我通过另一种方式选用户,选服务登录的话,就只能看到最初安装ORACLE时建立的那个数据库了,
- 这个SQL如何写
- @@@送分快来抢:oracle中一个表的记录ID是用number类型,还是用rowid好?
- 9i中用户的问题以及其它~~~~~~~~~~~~~~
- 如何获取数据库中2分钟内写入的所有记录呢
11:22:40 SQL> select * from emp where ename like 'SM\%' escape '\\';
select * from emp where ename like 'SM\%' escape '\\'
*
ERROR 位于第 1 行:
ORA-01425: 换码符必须是长度为 1 的字符串
已用时间: 00: 00: 00.47
11:28:52 SQL> 正好跟楼上说的情况相反。
执行一下
select length('\'),lengthb('\') from dual;看结果是否都是1。
2 ;A B
---- ----------
aaa%SQL>
把你的字符集和语言贴出来看看是什么?
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_LANGUAGE
JAPANESENLS_TERRITORY
JAPANNLS_CURRENCY
\
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_ISO_CURRENCY
JAPANNLS_NUMERIC_CHARACTERS
.,NLS_CALENDAR
GREGORIAN
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_DATE_FORMAT
RR-MM-DDNLS_DATE_LANGUAGE
JAPANESENLS_CHARACTERSET
JA16SJIS
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_SORT
BINARYNLS_TIME_FORMAT
HH24:MI:SSXFFNLS_TIMESTAMP_FORMAT
RR-MM-DD HH24:MI:SSXFF
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_TIME_TZ_FORMAT
HH24:MI:SSXFF TZRNLS_TIMESTAMP_TZ_FORMAT
RR-MM-DD HH24:MI:SSXFF TZRNLS_DUAL_CURRENCY
\
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16NLS_COMP
BINARYNLS_LENGTH_SEMANTICS
BYTE
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE
Oracle 从9i开始才在like语句中支持escape的
如果escape后的字符串长度为2位,那我这边就可以正常运行了
可是这是不正常的吧?