Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

नई लाइन के साथ स्प्लिट स्ट्रिंग और पीएल में सरणी में जोड़ें

जब आप टॉम को पहले ही नमस्ते कह चुके हैं तो आप फिर से टॉम का नाम क्यों पूछते हैं?

वैसे भी.. हाँ। आप CHR(10) . द्वारा सीमांकित स्ट्रिंग पर मानक स्ट्रिंग स्प्लिट ऑपरेशन का उपयोग कर सकते हैं - Oracle में न्यूलाइन कैरेक्टर। फिर CAST . का उपयोग करें और COLLECT इसे एक सरणी में बदलने के लिए कार्य करता है। यहाँ मैंने Oracle के बिल्ट-इन संग्रह sys.OdciVarchar2List . का उपयोग किया है . अपने पीएल/एसक्यूएल ब्लॉक में आप इसे किसी भी उचित संग्रह प्रकार में एकत्रित कर सकते हैं जिसमें स्ट्रिंग तत्व हो सकते हैं।

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

परिणाम :

|                               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. कीवर्ड के साथ का उपयोग करके मैं एक ही समय में एक से अधिक कॉलम अपडेट क्यों नहीं कर सकता?

  2. cx_Oracle Linux पर इंस्टॉलेशन के लिए Oracle सॉफ़्टवेयर इंस्टॉलेशन के स्थान की पहचान नहीं करता है

  3. यदि आप OCI संस्करण Easysoft Oracle ODBC ड्राइवर का उपयोग करते समय साझा ऑब्जेक्ट फ़ाइल त्रुटियों को नहीं खोल सकते हैं तो क्या करें?

  4. Oracle SQL सर्वर के समतुल्य DATEPART

  5. Verify_queryable_inventory लौटा ORA-20008:समय समाप्त हो गया