Varför frågar du Toms namn igen när du redan har sagt hej till honom?
Hur som helst.. Ja. Du kan använda standardoperationen för strängdelning på sträng avgränsad av CHR(10)
- nyradsfigur i Oracle. Använd sedan CAST
och COLLECT
funktioner för att konvertera den till en array. Här har jag använt Oracles inbyggda samling sys.OdciVarchar2List
. I ditt PL/SQL-block kan du BULK SAMLA det till valfri samlingstyp som kan innehålla strängelement.
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)|| ']+')
Resultat :
| COLLECTION |
|------------------------------------------|
| Hello Tom,Where are you,What's your name |