Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как получить значение между 2 символами  [new]
dima1334
Member

Откуда:
Сообщений: 2
Здравствуйте, есть строка add_info, в ней содержится:

POSTAL_CODE=01001;TRANS_LOCATION=OSCHADBANK;TOP_CONTRACT=9808539;MERCH_SIC=4900;BILPMN=lviv_mistocash_group;FROM_WAY4CP=Y;F104=8208246046;OPCAT=C;ORIG_ID=13445198810;PAY_CODE=N;SC=SBON_LVIV;ORIG_AMOUNT=740.97;TGTCC=UKR;PRODUCT_ID=MDH;MC_PAYPASS_CARD=Y;APRPD_IND=N;CARD_AFS=D;CARD_PTI=1;BINCHL=E;ACQ_NL;OPID=38894;ONLINE=Y;OC=e;DEV=100020000060NNNNN;ORIGID_CNT=1;S_USG=M;ACQ_USG;ASIDS=205579610,;PREAUTH_ID=13445198810;FNLC=S;

POSTAL_CODE=01001;TRANS_LOCATION=OSCHADBANK;TOP_CONTRACT=9808539;MERCH_SIC=4900;BILPMN=kharkiv_gazzbut_1;FROM_WAY4CP=Y;F104=1320376214;OPCAT=C;ORIG_ID=13445349610;PAY_CODE=N;SC=SBON_KHARKIV;ORIG_AMOUNT=107;TGTCC=UKR;PRODUCT_ID=MDS;APRPD_IND=N;CARD_AFS=D;CARD_PTI=1;BINCHL=E;ACQ_NL;OPID=38894;ONLINE=Y;OC=e;DEV=100020000060NNNNN;ORIGID_CNT=1;S_USG=M;ACQ_USG;ASIDS=205582630,;PREAUTH_ID=13445349610;FNLC=S;

FROM_WAY4CP=Y;F104=1900660075;ORIG_ID=13445623460;PAY_CODE=N;SC=lviv_loe_group;POSTAL_CODE=01001;TRANS_LOCATION=OSCHADBANK;TGTCC=UKR;PRODUCT_ID=MDS;APRPD_IND=N;CARD_AFS=D;CARD_PTI=1;BINCHL=E;ACQ_NL;OPID=39072;ONLINE=Y;OC=e;DEV=100020000060NNNNN;ORIGID_CNT=0;S_USG=MAK;ACQ_USG;NW_STAN=791107;ASIDS=205588060,;

И мне нужно вырезать чтобы выводило между BILPMN-FROM, SC-POSTAL_CODE (то есть kharkiv_gazzbut_1, lviv_mistocash_group, lviv_loe_group)

Я начал делать, но не знаю как обрезать конец. Спасибо за помощь

select substr(add_info, instr(add_info, '=',5,1)+1)
from doc
21 апр 21, 13:53    [22311913]     Ответить | Цитировать Сообщить модератору
 Re: Как получить значение между 2 символами  [new]
legg
Member

Откуда: Москва
Сообщений: 6643
dima1334,
использовать третий параметр substr
21 апр 21, 13:59    [22311920]     Ответить | Цитировать Сообщить модератору
 Re: Как получить значение между 2 символами  [new]
123йй
Member

Откуда:
Сообщений: 1675
dima1334 ,

0 строка в столбец...
1 регулярка
2
select substr(a,instr(a,'b='),instr(a,';',instr(a,'b='))-instr(a,'b=')) from (
select 'a=123;b=321;c=3;' a from dual )
21 апр 21, 14:04    [22311926]     Ответить | Цитировать Сообщить модератору
 Re: Как получить значение между 2 символами  [new]
dima1334
Member

Откуда:
Сообщений: 2
legg, здравствуйте, я уже использовал, но не получаеться)
22 апр 21, 09:04    [22312238]     Ответить | Цитировать Сообщить модератору
 Re: Как получить значение между 2 символами  [new]
Elic
Member

Откуда:
Сообщений: 30166
dima1334
я уже использовал, но не получаеться)
А ты попробуй не сразу нахрапом получить результат, а иди маленькими шажочками. Это позволяет достичь результата и закрепить знания.
22 апр 21, 09:08    [22312241]     Ответить | Цитировать Сообщить модератору
 Re: Как получить значение между 2 символами  [new]
legg
Member

Откуда: Москва
Сообщений: 6643
dima1334
legg, здравствуйте, я уже использовал, но не получаеться)

Я чуток позанудствую.
Когда у меня сразу не получается, я пытаюсь
1. Сформулировать постановку задачи как можно чётче. Для идиота(для себя). И как ни странно уже на этом этапе часто прояснение наступает.
2. Описать алгоритм решения как можно подробнее. Для идиота(для себя)
3. Реализовать алгоритм.
Если затык на втором и третьем этапе (не хватает знаний или соображалки) - прошу помощи зала. И опять же чаще всего пока формулирую понятный четкий вопрос сам дохожу до ответа. Пока помогает).

Вот у Вас я понятной для себя постановки с лету не увидел, пришлось сравнивать исходные данные и желаемый результат.

Сообщение было отредактировано: 22 апр 21, 09:39
22 апр 21, 09:46    [22312264]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить