Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Teilen Sie die Zeichenfolge mit einer neuen Zeile und fügen Sie ein Array in PL SQL Oracle hinzu

Warum fragst du noch einmal nach Toms Namen, wenn du ihn bereits begrüßt hast?

Wie auch immer.. Ja. Sie könnten den Standard-String-Split-Vorgang für Strings verwenden, die durch CHR(10) begrenzt sind - Newline-Zeichen in Oracle. Dann nutzen Sie CAST und COLLECT Funktionen, um es in ein Array umzuwandeln. Hier habe ich die eingebaute Sammlung sys.OdciVarchar2List von Oracle verwendet . In Ihrem PL/SQL-Block können Sie ihn BULK COLLECT in jeden geeigneten Collection-Typ, der String-Elemente enthalten kann.

SQL-Geige

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)|| ']+')

Ergebnisse :

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