комбинация функций не работает должным образом - PullRequest
0 голосов
/ 26 июня 2018

Когда я пытаюсь получить результаты, используя функцию ниже, я получаю только первую доступную строку в SH_CHGDESC, которая является FRTRV-1

строка, доступная для SH_CHGDESC: FRTRV-11; SFARV-13; SCRRV-12

хочет получить все доступные строки

If InStr ({pipe.SH_CHGDESC}, "1;") >0
then mid({pipe.SH_CHGDESC},1,InStr ({pipe.SH_CHGDESC}, "1;")-1)

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 26 июня 2018

Я думаю, вы просто пытаетесь разделить строку с разделителями на несколько значений; с вашей строкой в ​​CTE:

with pipe (SH_CHGDESC) as (
  select 'FRTRV-11;SFARV-13;SCRRV-12' from dual
)
select regexp_substr(sh_chgdesc, '(.*?)(;|$)', 1, level, null, 1)
from pipe
connect by level < regexp_count(sh_chgdesc, '(.*?)(;|$)');

REGEXP_SUBSTR(SH_CHGDESC,'
--------------------------
FRTRV-11
SFARV-13
SCRRV-12

Если вы получаете строку из таблицы и работаете с несколькими строками одновременно, это немного сложнее, но может быть обработано, если в таблице pipe есть первичный / уникальный ключ.

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