Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:Podziel pole tekstowe w nowej linii

Zakładając, że znak łamania linii to CHR(10), powinno działać coś takiego:

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; 

Jeśli addr_table jest wypełniana za pomocą następującej instrukcji:

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

powyższy SELECT zwróci

STREET_ADDR     CITY            STATE
12345 MY STREET NOWHERESVILLE   ASTATE

Udostępniaj i ciesz się




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:odpowiednik RowVersion w Oracle

  2. Jak obsłużyć duże transakcje w Oracle?

  3. MySQL:jak wykonać zabezpieczenia na poziomie wiersza (takie jak wirtualna prywatna baza danych Oracle)?

  4. Porównanie listy wartości z tabelą

  5. Obejście dla ORA-00997:nielegalne użycie typu danych LONG