没有问题啊。
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>
解决方案 »
- oracle问题,那位朋友帮帮忙。
- 求助:如何把主表中一个字段内容拆分到明细表中;
- Oracle行列转换问题~求高手指教~~~
- 比如想取出100-150条记录
- oracle怎把序列设置到表中列
- SQL*Loader装载Blob问题,高手都过来看呀
- 我想在Oracle查找擅自修改数据内容,该怎么办?
- 有一个人告诉我,将表常驻内存有助于提高查询速度,请问如何将表常驻内存?谢谢。
- 求助sql语句date等于号不能用
- Windows Server 2016 装11.2.0.4 版本的Oracle 不会有什么问题吧?
- 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位,那我这边就可以正常运行了
可是这是不正常的吧?