---等于0代表没有,大于0代表包含中文全角字符 SQL> select regexp_instr('safafsdf?sdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDF?SDFASDF ------------------------------ 9SQL> select regexp_instr('safafsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDFSDFASDF' ------------------------------ 0SQL> select regexp_instr('safa《fsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFA《FSDFSDFASD ------------------------------ 5SQL>
只会用length,lengthb 比较,正则表达式不会,学习中
用select regexp_instr('safafsdf?sdfasdf','[^a-z|A-Z|0-9]') from dual;是查询出非子母与非数字字符的位置,现在需要的结果是,只查出全角字符,而不只是非数字与非字母字符。例如如果是“,.?()”都是可以的,但是是“,。?()”是不可以的。 现在想确认的就是字符中是否包含“,。?()”
select * from aaa
where regexp_like(name,'[^\x00-\xff]')用这个公式会查出所有结果,全角的半角的都出来了,应该怎么修改啊?
select * from aaa where length(name)<>lengthb(name);
---等于0代表没有,大于0代表包含中文全角字符
SQL> select regexp_instr('safafsdf?sdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDF?SDFASDF
------------------------------
9SQL> select regexp_instr('safafsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDFSDFASDF'
------------------------------
0SQL> select regexp_instr('safa《fsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFA《FSDFSDFASD
------------------------------
5SQL>
现在想确认的就是字符中是否包含“,。?()”