问题一:两个字段 user_name, password。 我想查询用户名与密码比较相似的所有记录。select * from t where regexp_like(user_name, password)这个语句以前成功过,现在运行时总是报错:ORA-12725:正则表达式中的圆括号不匹配。问题二:我想将密码中的规律数据全部拿出来,如前3位是大写的引文字母,第4位是_,后三位是数字 的这些数据。譬如:CCD_654.
谢谢。
谢谢。
select 'ABC_123' a from dual
union all
select 'ABb_123' a from dual
union all
select 'ADC_12' a from dual
union all
select 'BC_123' a from dual
)
select * from temp where regexp_like(a,'[[:upper:]]{3,3}_[[:digit:]]{3,3}')
不知道,和版本有关?问题二:
regexp_like(password,'^([A-Z]{3,3})+_([1-9])')
select 'yes' from dual where regexp_like('abc(123)', 'abc(') ;
ORA-12725: unmatched parentheses in regular expression你的password中的某些值可能含有正則表達式的特殊字符,這樣可能會導致其不能正確解釋。2. 借用1樓的,改一下
with temp as(
select 'ABC_123' a from dual
union all
select 'ABb_123' a from dual
union all
select 'ADC_12' a from dual
union all
select 'BC_123' a from dual
)
select * from temp where regexp_like(a,'[A-Z]{3}_[0-9]{3}');
“你的password中的某些值可能含有正則表達式的特殊字符,這樣可能會導致其不能正確解釋。”我觉得很像你说的这种情况,如果真是这样,该怎么实现呢? 谢谢。