sql >> Database teknologi >  >> RDS >> Oracle

Opdel streng med ny linje og tilføj array i PL sql Oracle

Hvorfor spørger du om Toms navn igen, når du allerede har sagt hej til ham?

Anyways.. Ja. Du kan bruge standard strengopdelingsoperationen på streng afgrænset af CHR(10) - nylinjekarakter i Oracle. Brug derefter CAST og COLLECT funktioner til at konvertere det til et array. Her har jeg brugt Oracles indbyggede samling sys.OdciVarchar2List . I din PL/SQL-blok kan du BULK SAMLE den til en hvilken som helst passende samlingstype, der kan indeholde strengelementer.

SQL Fiddle

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

Resultater :

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

  1. Sådan får du gårsdagens date i Oracle

  2. Php-MySql-sikkerhedstilgang, mens du INDSÆTTER I MySql og henter fra MySql til skærmen

  3. Deltagelsesrapport i MySql

  4. SQL - Find filmtitlen og sprognavnet på alle film, hvor ADAM GRANT medvirkede