поиск root слов в oracle - PullRequest
       0

поиск root слов в oracle

0 голосов
/ 16 апреля 2020

Я новичок в Oracle.

У меня есть 1 база данных, в которой тип данных CLOB хранится в 1 столбце.

Как найти строку #include( UTILITIES, 10_MORNING, EVENING ), но исключить вхождения строки //#include( UTILITIES, 10_MORNING, EVENING ) из набора результатов?

Я использую приведенную ниже команду, но она возвращает обе указанные выше строки:

select ID  
from SCRIPTS
where regexp_like(MFG_SCRIPT, '#include( UTILITIES, 10_MORNING, EVENING )') 
order by ID

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете фильтровать комментарии в CLOB, как показано ниже

  select ID  
  from SCRIPTS
  where regexp_like(MFG_SCRIPT, '#include( UTILITIES, 10_MORNING, EVENING )') 
  and not regexp_like (MFG_SCRIPT,'//+')
  order by ID

Для использования% в регулярном выражении вы должны использовать escape-символ для ()

 select * from SCRIPTS
 where regexp_like(MFG_SCRIPT, 'include\( UTILITIES, 10_MORNING, EVENING \)') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...