Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pisahkan String dengan baris baru dan tambahkan array di PL sql Oracle

Mengapa Anda menanyakan nama Tom lagi padahal Anda sudah menyapanya?

Bagaimanapun.. Ya. Anda dapat menggunakan operasi pemisahan string standar pada string yang dibatasi oleh CHR(10) - karakter baris baru di Oracle. Kemudian gunakan CAST dan COLLECT berfungsi untuk mengubahnya menjadi array. Di sini saya telah menggunakan koleksi bawaan Oracle sys.OdciVarchar2List . Di blok PL/SQL Anda, Anda dapat MENGUMPULKAN BULK ke dalam jenis koleksi yang tepat yang dapat menampung elemen string.

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

Hasil :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hentikan kesalahan kompilasi dalam skrip sqlplus

  2. Apakah aplikasi web Azure PHP 7 memiliki driver Oracle?

  3. Oracle PL/SQL mendapatkan IP v4 server?

  4. Oracle PL\SQL Null Input Parameter WHERE condition

  5. Pilih Baris Ke-N Dari Tabel Di Oracle