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.
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)|| ']+')
| COLLECTION |
|------------------------------------------|
| Hello Tom,Where are you,What's your name |