अधिक तेज़ translate()<का उपयोग करें /कोड>
इस साधारण मामले के लिए:
UPDATE tbl SET text = translate(text, '(;<>)', '');
दूसरे पैरामीटर में प्रत्येक वर्ण जिसका तीसरे पैरामीटर में कोई प्रतिपक्ष नहीं है, उसे कुछ भी नहीं के साथ बदल दिया जाता है।
रेगुलर एक्सप्रेशन समाधान इस तरह दिख सकता है:
regexp_replace(text, '[(;<>)]', '', 'g');
आवश्यक तत्व चौथा पैरामीटर है 'g'
केवल पहले मैच के बजाय "वैश्विक रूप से" को बदलने के लिए। दूसरा पैरामीटर एक वर्ण वर्ग है।
आप सही रास्ते पर थे, बस regexp_replace()
।
अपडेट
पर संकेत करें
यदि आप सभी की अपेक्षा नहीं करते हैं पंक्तियों को बदलने के लिए, मैं दृढ़ता से सलाह दूंगा कि आप अपने अद्यतन
को अनुकूलित करें कथन:
UPDATE tbl
SET text = translate(text, '(;<>)', '')
WHERE text <> translate(text, '(;<>)', '');
इस तरह आप (महंगे) खाली अपडेट से बचते हैं। (शून्य
इस विशेष मामले में स्वचालित रूप से कवर किया जाता है।)