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

ORA-12728:रेगुलर एक्सप्रेशन में अमान्य श्रेणी

Regexp \ . का उपयोग नहीं करते - protect की सुरक्षा के लिए एक ब्रैकेट एक्सप्रेशन . में . आपको सिर्फ - डालना है पहले अक्षर के रूप में, शुरुआती कोष्ठक के ठीक बाद:

IF REGEXP_LIKE('--,,::', '[\-,:]*')
...

=> ORA-12728: invalid range in regular expression

यदि आप उत्सुक हैं, तो [\-,:] . का सामना करते समय Oracle समझते हैं:"\ . से श्रेणी में कोई भी वर्ण करने के लिए , या वर्ण : " . इसका एक अपवाद उत्पन्न करने का कारण \ है बाद . प्रतीत होता है , उनके ASCII मूल्य के अनुसार। और Oracle श्रेणी को स्वीकार नहीं करता है समाप्त होने के बाद प्रारंभिक मान होना।

दूसरी ओर:

 IF REGEXP_LIKE('--,,::', '[-,:]*')

उम्मीद के मुताबिक काम करता है।

<उप>एक साइड नोट के रूप में, [-,:]{0,1} अर्थ "शून्य या एक बार फिर - या , या : " लिखा जा सकता है [-,:]? .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:WHERE क्लॉज में `(+)` क्या करता है?

  2. ओरेकल स्टेटमेंट

  3. कनेक्शन को oracle.jdbc.OracleConnection में नहीं डाला जा सकता है

  4. Oracle NULLIF () फ़ंक्शन

  5. Oracle के अलावा RDBMS में कनेक्ट BY या पदानुक्रमित प्रश्न