Jak wyciągnąć ciąg znaków po "=" w wielowierszowym wartości kolumny z pomocą oracle sql?

0

Pytanie

Mam tabela z kolumną, którzy mają wielowierszowe wartość, a każdy wiersz jest rodzajem kilka kluczowych wartości (oddzielone znakiem = i, prawdopodobnie, kończących nowych podziału wiersza).

Przykład wartości w jednej komórce kolumny:

Lista pary klucz / wartość
ключ00=wartość 00 <\n> ключ01=wartość 01 <\n><\n> ключ02=wartość 02

Szukam zapytanie SQL (Oracle), aby znaleźć konkretny klucz (powiedzmy, Key01) i wyświetlić go w następującym formacie

Klawisz wartość
Ключ01 Wartość 01

Proszę, pomóż.

oracle sql
2021-11-24 05:28:58
1

Najlepsza odpowiedź

0

Oto jeden z wariantów

Przykładowe dane:

SQL> select * from test;

        ID COL
---------- --------------------------------------------------
         1 key00=value00
           key01=value01
           key02=value02

Podzapytanie zwraca podciąg, który zaczyna się od wartości "klucz" (jest przekazywana jako parametr), podczas gdy zewnętrzny zapytanie rozbija tę formułę na klucz i wartość samodzielnie:

SQL> select regexp_substr(str, '^\w+') key,
  2         regexp_substr(str, '\w+$') value
  3  from (select regexp_substr(col, '&par_key=\w+') str
  4        from test
  5       );
Enter value for par_key: key01

KEY             VALUE
--------------- ---------------
key01           value01

SQL>
2021-11-24 07:13:22

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................