REGEXP_LIKE QUERY IN ORACLE DB
Мне нужно в настоящее время соответствовать 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
as oracle db допускает не более 2 аргументов. (другая проблема)
1 ответ
Вы можете объединить параметр:
SELECT *
FROM BPP.CHECK_REGISTER
WHERE REGEXP_LIKE (CHECK_NO,'^(0*'||:checkNum||')$');
Либо добавьте часть регулярного выражения к введенному пользователем значению (в коде приложения), прежде чем передавать его в запрос.