我有一个要求,我需要获取具有特殊字符(包括少数例外)的完整数据。我尝试使用REGEXP_LIKE (STATE,'[^A-Za-z0-9, ]')
但无法得出结果。
1)以下是不能为空白或具有特殊字符的关键字段。
a。名称1
b。名称2
c。联系人1
d。地址1e。地址2
f。城市
g ST
h。邮编
2)供应商不允许的特殊字符包括
, . / ? < > ; : ‘ “ [ ] \ | { } ! @ # $ % ^ & * ( ) - _ = +
异常#1-Name1,Name2,Contact1字段允许跟随- ‘ .
异常2-地址1,地址2允许跟随# /
选择查询:
select Name1, Name2, Contact1, Address1, Address2, City, STATE, Zip
from tableA
答案 0 :(得分:0)
您要尝试用特殊字符查找所有行,对吗?试试这个。
select Name1, Name2, Contact1, Address1, Address2, City, STATE, Zip
from tableA
where regexp_instr(name1 || name2 || contact1, '[^.[:alnum:], -'']') > 0
or regexp_instr(address1 || address2, '[^[:alnum:], #/]') > 0
or regexp_instr(city || state || zip, '[^[:alnum:], ]') > 0
我建议在这里使用[:alnum:]
,因为if you have NLS_SORT set, A-Z
can behave unpredictably。如果您不必担心,A-Za-z0-9
的工作原理与之类似。