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

Oracle:Textfeld bei Zeilenumbruch teilen

Angenommen, Ihr Zeilenumbruchzeichen ist CHR(10), sollte so etwas wie das Folgende funktionieren:

SELECT TRIM(REGEXP_REPLACE(addr, '(.*)' || CHR(10) || '.*' || CHR(10) || '.*', '\1')) AS STREET_ADDR,
       TRIM(REGEXP_REPLACE(addr, '.*' || CHR(10) || '(.*)' || CHR(10) || '.*', '\1')) AS CITY,
       TRIM(REGEXP_REPLACE(addr, '.*' || CHR(10) || '.*' || CHR(10) || '(.*)', '\1')) AS STATE
      FROM addr_table; 

Wenn addr_table mit der folgenden Anweisung gefüllt wird:

INSERT INTO addr_table(addr)
VALUES('12345 MY STREET' || CHR(10) || 'NOWHERESVILLE' || CHR(10) || 'ASTATE');

das obige SELECT gibt zurück

STREET_ADDR     CITY            STATE
12345 MY STREET NOWHERESVILLE   ASTATE

Teilen und genießen