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

उपयोगकर्ता इनपुट मान के साथ तालिका कॉलम में अल्पविराम से अलग किए गए मान को कैसे बदलें oracle

delete from yourtable t
where
  instr(','||t.col||',', '123') > 0

आप चाहें तो '123' को एक पैरामीटर से बदल सकते हैं।

लेकिन एक बेहतर तरीका यह होगा कि अल्पविराम से अलग किए गए मानों को संग्रहीत न करें, और इसके बजाय एक विवरण तालिका बनाएं। यदि आपको अल्पविराम से अलग की गई सूची में किसी विशिष्ट मान की तलाश करने की आवश्यकता है, तो आप अन्य सीमाओं के साथ, सूचकांकों का उपयोग नहीं कर सकते।

[संपादित करें] प्रश्न को गलत समझा। आपका मतलब यह था:

update YourTable t
set
  t.col = substr(substr(replace(','||t.col||',', ',123,', ','), 2), -2)
where
  instr(','||t.col||',', '123') > 0
  • मूल्य के आरंभ या अंत में आइटम का मिलान करने से पहले और बाद में ',' जोड़ें।
  • ',123,' (अल्पविराम के भीतर) मान का उपयोग करके बदलें ताकि गलती से भी 1234 का मिलान न हो जाए।
  • पहले और अंतिम वर्ण (जोड़े गए अल्पविराम) को हटाने के लिए दो बार सबस्ट्र का उपयोग करें
  • उन रिकॉर्ड्स को अपडेट करने से रोकने के लिए जहां इंस्ट्र का उपयोग करें जिन्हें अपडेट करने की आवश्यकता नहीं है (बेहतर प्रदर्शन)।


  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 लोडर के लिए 46 नियंत्रण फ़ाइलें

  2. Oracle dbms_job.submit:सिंक्रोनस और एसिंक्रोनस का मिश्रण

  3. सरल getColumnName(0) कॉल फेंकता है अमान्य स्तंभ अनुक्रमणिका:getValidColumnIndex

  4. ओरेकल डेटाबेस का उपयोग करने के लिए जेपीए2 फीचर पैक के साथ वेबस्पेयर एप्लिकेशन सर्वर पर जेबीपीएम 5.4 कंसोल सर्वर युद्ध को तैनात करने में समस्या

  5. ORA-02267:स्तंभ प्रकार संदर्भित स्तंभ प्रकार के साथ असंगत है