Oracle
 sql >> Baza danych >  >> RDS >> Oracle

regexp_substr pomija puste pozycje

regexp_substr działa w ten sposób:

Jeśli wystąpienie jest większe niż 1, baza danych wyszukuje drugie wystąpienie, zaczynając od pierwszego znaku następującego po pierwszym wystąpieniu wzorca , i tak dalej. To zachowanie różni się od funkcji SUBSTR, która rozpoczyna wyszukiwanie drugiego wystąpienia od drugiego znaku pierwszego wystąpienia.

Tak więc wzorzec [^|] będzie szukał potoków NON, co oznacza, że ​​pominie kolejne potoki („||”), szukając znaku niebędącego potokiem.

Możesz spróbować:

select trim(regexp_substr(replace('A|test||string', '|', '| '), '[^|]+', 1, 4)) from dual;

Zastąpi to „|” z "| " i pozwala na dopasowanie na podstawie wzorca [^|]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę wygenerować (lub pobrać) skrypt ddl na istniejącej tabeli w Oracle? Muszę je odtworzyć w Hive

  2. Data Oracle Między zapytaniem

  3. Eksportuj dane do pliku JSON w Oracle 11g przy użyciu PL/SQL

  4. poprawka wstępna

  5. Zaktualizuj wiele kolumn w instrukcji MERGE ORACLE