Tại sao bạn lại hỏi tên Tom khi bạn đã chào anh ấy?
Dù sao thì .. Có. Bạn có thể sử dụng thao tác tách chuỗi tiêu chuẩn trên chuỗi được phân tách bằng CHR(10)
- ký tự dòng mới trong Oracle. Sau đó, sử dụng CAST
và COLLECT
các hàm để chuyển đổi nó thành một mảng. Ở đây tôi đã sử dụng bộ sưu tập tích hợp sẵn của Oracle sys.OdciVarchar2List
. Trong khối PL / SQL của mình, bạn có thể THU THẬP SỐ LƯỢNG LỚN nó vào bất kỳ kiểu tập hợp thích hợp nào có thể chứa các phần tử chuỗi.
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)|| ']+')
Kết quả :
| COLLECTION |
|------------------------------------------|
| Hello Tom,Where are you,What's your name |