REGEXP_LIKE QUERY IN ORACLE DB - PullRequest
       9

REGEXP_LIKE QUERY IN ORACLE DB

0 голосов
/ 14 ноября 2018

Мне нужно в настоящее время соответствовать 00000012345 и 12345 в моем DB поисковом запросе. Я сейчас использую следующий запрос:

SELECT * 
FROM BPP.CHECK_REGISTER 
WHERE CHECK_NO like CONCAT('%',:checkNum)

для поиска, но здесь % может означать любой символ, отличный от 0, поэтому я заменил этот запрос следующим:

SELECT * 
FROM BPP.CHECK_REGISTER 
WHERE REGEXP_LIKE (CHECK_NO,'^(0*12345)$')

но в этом запросе я не хочу упоминать 12345, но упоминаю его как введенный пользователем параметр, такой как первый запрос :checkNum

Как перефразировать условие REGEXP_LIKE только с 2 аргументами при вводе пользователем :checkNum, поскольку oracle db допускает не более 2 аргументов. (другая проблема)

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете объединить параметр:

SELECT * 
FROM BPP.CHECK_REGISTER 
WHERE REGEXP_LIKE (CHECK_NO,'^(0*'||:checkNum||')$');

В качестве альтернативы добавьте часть регулярного выражения к введенному пользователем значению (в коде приложения) перед передачей его в запрос.

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