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

REGEXP_REPLACE - केवल ()'s . में संलग्न होने पर ही स्ट्रिंग से अल्पविराम हटाएं

यह कोष्ठक में तर्कों की निरंतर लंबाई के लिए काम करेगा।

REGEXP_REPLACE(t.col1, '(\(.*?),(.*?),(.*?\))', '\1\2\3') new_col

@ कोबी की टिप्पणी से प्रेरित अपडेट:
यह रेगुलर एक्सप्रेशन पहला, वैकल्पिक दूसरा और वैकल्पिक तीसरा , हटा देता है () . के बीच
इसे 9 तक बढ़ाया जा सकता है (मेरे पास किताब है बताते हुए \1 ... \500 संभव होना चाहिए लेकिन केवल \1 ... \9 काम किया)

REGEXP_REPLACE(t.col1, '\(([^,]*),([^,]*),?([^,]*),?([^,]*)\)', '(\1\2\3\4)') new_col


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pl/SQL- क्वेरी से कॉलम नाम प्राप्त करें

  2. तालिका के मध्य में नए कॉलम सम्मिलित करना?

  3. राउनम का उपयोग कैसे करें

  4. ऑरैकल संग्रहीत कार्यविधि में टेक्स्ट की कई पंक्तियों को बदलें या हटाएं

  5. Oracle एपेक्स 20.1 त्रुटि:सत्यापन प्रक्रिया में त्रुटि