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

Oracle रेगेक्स के साथ समस्या

* ऑपरेटर डिफ़ॉल्ट रूप से 'लालची' होता है . आप distinct . के बीच किसी भी वर्ण को अनुमति दे रहे हैं और ) , किसी भी मात्रा में। और पहले ) . सहित स्वयं।

जैसा कि ईटÅपीच ने सुझाव दिया था, आप इसे ? . के साथ गैर-लालची बना सकते हैं :

तो यहाँ, .*? . के साथ .* . के बजाय :

select regexp_substr(
  'select count(distinct empno), count(distinct deptno) from emp',
    'count\(distinct.*?\)')
from dual;

या आप निर्दिष्ट कर सकते हैं कि यह ) . को छोड़कर कोई भी वर्ण होना चाहिए [^)]* . के साथ .* . के बजाय ।

select regexp_substr(
  'select count(distinct empno), count(distinct deptno) from emp',
    'count\(distinct[^)]*\)')
from dual;


  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 में SQL क्वेरी के इनपुट के रूप में फ़ाइल से पढ़े गए मान पास करें

  2. Oracle SQL:एकाधिक स्तंभों के बीच नवीनतम तिथि के साथ एकल पंक्ति का चयन

  3. Oracle DATE को LIKE '%' का उपयोग करता है

  4. एसक्यूएल मिन दो टेबल से मान

  5. जेबॉस 7 (जीव्स डीबीएमएस) पर जेएनडीआई डेटासोर्स के लिए ओरेकल कनेक्शन ऑटोोकॉमिट को रोकें