Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разбор / 13 сообщений из 13, страница 1 из 1
06.05.2019, 11:08
    #39810063
BSK
BSK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Добрый день!
Подскажите, есть вот такая строка

WITH st AS (SELECT 'Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604)' STR FROM DUAL
) SELECT str,
REGEXP_SUBSTR( STR, '\(([^)]+)\)', 1, 1, NULL, 1 ) ,
regexp_replace(regexp_replace(str,'.','',instr(str,'('),1),'.','',instr(str,')',-1)-1,1) FROM st;

Подскажите , как вынуть из нее текст от первой до последней скобки, чтобы привести его к виду

ПК(АА)МВРРШ-2/1604
спасибо.
...
Рейтинг: 0 / 0
06.05.2019, 11:16
    #39810071
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
BSK,

substr
...
Рейтинг: 0 / 0
06.05.2019, 11:17
    #39810073
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Попробуем уточнить задачу:
BSKвынуть из нее текст от первой открывающей до парной закрывающей скобки?
...
Рейтинг: 0 / 0
06.05.2019, 12:07
    #39810103
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
WITH st(str) AS (SELECT '((Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604)))' FROM DUAL
)
SELECT str FROM st UNION ALL
SELECT
   SUBSTR(str,INSTR(str,'(',1,level) + 1,INSTR(str,')',-1,level) - INSTR(str,'(',1,level) - 1)
FROM st
CONNECT BY LEVEL  <  REGEXP_COUNT(STR,'\(') + 1
/

STR
--------------------------------------------------------------------------------
((Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604)))
(Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604))
Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604)
ПК(АА)МВРРШ-2/1604
АА
SQL> 
...
Рейтинг: 0 / 0
06.05.2019, 12:19
    #39810114
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Vadim Lejnin
Код: plsql
1.
WITH

Понимаешь ли ты и подобные свою ответственность, давая нерецептурированную гранату обезьянам, которые в других обстоятельствах применят её так же, но с совершенно другим непредсказуемым результатом?
Стоит ли твоя скука на (без)работе этого?
...
Рейтинг: 0 / 0
06.05.2019, 12:32
    #39810131
BSK
BSK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
AmKad,


да, оставив только вот эти данные
ПК(АА)МВРРШ-2/1604
...
Рейтинг: 0 / 0
06.05.2019, 12:40
    #39810137
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
ElicVadim Lejnin
Код: plsql
1.
WITH

Понимаешь ли ты и подобные свою ответственность, давая нерецептурированную гранату обезьянам, которые в других обстоятельствах применят её так же, но с совершенно другим непредсказуемым результатом?
Стоит ли твоя скука на (без)работе этого?

Понял, исправляюсь :)

INSTR

Дока
* position is an nonzero integer indicating the character of string where Oracle Database begins the search—that is, the position of the first character of the first substring to compare with substring. If position is negative, then Oracle counts backward from the end of string and then searches backward from the resulting position.

* occurrence is an integer indicating which occurrence of substring in string Oracle should search for. The value of occurrence must be positive. If occurrence is greater than 1, then the database does not return on the first match but continues comparing consecutive substrings of string, as described above, until match number occurrence has been found.
...
Рейтинг: 0 / 0
06.05.2019, 13:50
    #39810185
Dshedoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
BSK...от первой до последней скобки...
Код: plsql
1.
2.
3.
WITH st AS (SELECT 'Дополнительная маркировка в г. Артем (ПК(АА)МВРРШ-2/1604)' STR FROM DUAL) 

SELECT str, REGEXP_SUBSTR( STR, '\((.*)\)',1,1,null,1) FROM st
...
Рейтинг: 0 / 0
06.05.2019, 14:34
    #39810231
BSK
BSK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Dshedoo,
огромное спасибо. очень помогли
...
Рейтинг: 0 / 0
06.05.2019, 15:47
    #39810275
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Vadim LejninПонял, исправляюсь :)Юродствуешь? Ничерта ты не понял…
...
Рейтинг: 0 / 0
22.05.2019, 16:55
    #39816659
Vladimir Baskakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
ElicVadim LejninПонял, исправляюсь :)Юродствуешь? Ничерта ты не понял…
а объясните пожалуйста. Судя по первой цитате диалога, нужно обратить внимание на with.
А в чем там опасность?
...
Рейтинг: 0 / 0
22.05.2019, 17:13
    #39816673
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
Vladimir Baskakovнужно обратить внимание на with.Не нужно.
Vladimir Baskakovопасность?Кормление с ложечки гомогенизированной пищей.
...
Рейтинг: 0 / 0
23.05.2019, 17:03
    #39817276
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор
ElicСтоит ли твоя скука на (без)работе этого?

Зато Элик готов тратить все свое свободное время, переживая за судьбу обезьян и их окружающих.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разбор / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]