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

Podziel String z nową linią i dodaj tablicę w PL sql Oracle

Dlaczego ponownie pytasz o imię Toma, skoro już się z nim przywitałeś?

W każdym razie... Tak. Możesz użyć standardowej operacji dzielenia ciągów na ciągach oddzielonych przez CHR(10) - znak nowej linii w Oracle. Następnie użyj CAST i COLLECT funkcje, aby przekonwertować go na tablicę. Tutaj użyłem wbudowanej kolekcji Oracle sys.OdciVarchar2List . W swoim bloku PL/SQL możesz BULK COLLECT do dowolnego odpowiedniego typu kolekcji, który może przechowywać elementy łańcuchowe.

Skrzypce SQL

WITH t (s)
AS (
    SELECT 'Hello Tom
Where are you
What''s your name'
    FROM DUAL
    )
SELECT CAST ( COLLECT ( REGEXP_SUBSTR(s, '[^' || CHR(10)|| ']+', 1, LEVEL) )
                       AS sys.OdciVarchar2List )  as collection
FROM t CONNECT BY LEVEL <= REGEXP_COUNT(s, '[^' || CHR(10)|| ']+')

Wyniki :

|                               COLLECTION |
|------------------------------------------|
| Hello Tom,Where are you,What's your name |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlDeveloper:wyczyść listę aliasów sieciowych

  2. Używanie OPENQUERY z bazą danych Oracle do zapytania o zakres dat

  3. Brakujące wiersze podczas odpytywania tabeli za pomocą Doctrine (Symfony2)

  4. Nielegalny rok Oracle SQL

  5. ORA-00904:nieprawidłowy identyfikator w tym przypadku