SQL для извлечения spcial charcters oracle 11g - PullRequest
0 голосов
/ 31 октября 2018

У меня есть требование, когда мне нужно получить полные данные со специальными символами, включая несколько исключений. Я пытался использовать REGEXP_LIKE (STATE,'[^A-Za-z0-9, ]') но не смог прийти к результатам.

1) Ниже приведены ключевые поля, которые не могут быть пустыми или содержать специальные символы.

а. Name1

б. Name2

с. Контакт1

д. Адрес1

е. Адрес2

ф. Город

г. ST

ч. Zip

2) К специальным символам, которые не разрешены продавцом, относятся

, . / ? < > ; : ‘ “ [ ] \ | { } ! @ # $ % ^ & * ( ) - _ = +

Исключение № 1 - поля Имя1, Имя2, Контакт1 позволяют вводить - ‘ .

Исключение № 2 - Адрес1, Адрес2 позволяют следующие # /

выберите запрос:

 select Name1, Name2, Contact1, Address1, Address2, City, STATE, Zip 
 from tableA

1 Ответ

0 голосов
/ 31 октября 2018

Вы пытаетесь найти все строки со специальными символами , верно? Попробуйте это.

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:] здесь, потому что , если у вас установлен NLS_SORT, A-Z может вести себя непредсказуемо . Если вас это не беспокоит, A-Za-z0-9 работает примерно так же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...