Oracle SQL regexp_like по типам Юникод - PullRequest
0 голосов
/ 17 декабря 2018

Допустим, у меня есть шаблон в типах Unicode (или Unicode Categories, согласно https://www.regular -expressions.info / unicode.html )

LLLLZLLLZLLLL
NNNN

Я пытаюсьчтобы написать SQL-запрос, выбирая записи в столбце, который точно соответствует шаблону.

У меня есть запись «2343» в этом столбце, наряду со многими другими смешанными буквенными числами, или более (более 4) Количество символов Unicode.

Я хочу получить ровно «2343» (или любую запись из 4 номеров Unicode).

Попробовал несколько, например

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}{4}S]');

SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '[^\p{N}\p{N}\p{N}\p{N}S]');

Ничего не работает.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

спасибо @ 1010!Вы подтолкнули меня в правильном направлении!Эти работы для меня:

4987  -  NNNN
SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '^[[:digit:]]{4}$');
Ivan Joe Test - LLLLZLLLZLLLL
SELECT field1 
FROM myTable1 
WHERE regexp_like(field1, '^[[:alpha:]]{4}[[:space:]][[:alpha:]]{3}[[:space:]][[:alpha:]]{4}$');
0 голосов
/ 17 декабря 2018

Похоже, что это не оракул синтаксис для классов символов Unicode.

Попробуйте [:digit:] для любой цифры.

см. здесь

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