Waarom vraag je Toms naam nog een keer als je hem al gedag hebt gezegd?
Hoe dan ook.. Ja. U kunt de standaard bewerking voor het splitsen van tekenreeksen gebruiken voor tekenreeksen die worden gescheiden door CHR(10)
- nieuwregelkarakter in Oracle. Maak dan gebruik van CAST
en COLLECT
functies om het naar een array te converteren. Hier heb ik Oracle's ingebouwde verzameling sys.OdciVarchar2List
gebruikt . In uw PL/SQL-blok kunt u het in BULK VERZAMELEN in elk geschikt verzamelingstype dat string-elementen kan bevatten.
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 |