Regexp \ . का उपयोग नहीं करते - protect की सुरक्षा के लिए एक ब्रैकेट एक्सप्रेशन . में . आपको सिर्फ - डालना है पहले अक्षर के रूप में, शुरुआती कोष्ठक के ठीक बाद:
IF REGEXP_LIKE('--,,::', '[\-,:]*')
...
=> ORA-12728: invalid range in regular expression
यदि आप उत्सुक हैं, तो [\-,:] . का सामना करते समय Oracle समझते हैं:"\ . से श्रेणी में कोई भी वर्ण करने के लिए , या वर्ण : " . इसका एक अपवाद उत्पन्न करने का कारण \ है बाद . प्रतीत होता है , उनके ASCII मूल्य के अनुसार। और Oracle श्रेणी को स्वीकार नहीं करता है समाप्त होने के बाद प्रारंभिक मान होना।
दूसरी ओर:
IF REGEXP_LIKE('--,,::', '[-,:]*')
उम्मीद के मुताबिक काम करता है।
<उप>एक साइड नोट के रूप में,
[-,:]{0,1} अर्थ "शून्य या एक बार फिर - या , या : " लिखा जा सकता है [-,:]? .उप>