Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL Regex не връща очакваните резултати

Oracle не поддържа неприхващащи групи (?:) . Вместо това ще трябва да използвате група за заснемане.

Също така не харесва мета-символа за празно пространство в стил perl \s съвпадение вътре в символен клас [] (ще съответства на знаците \ и s вместо интервал). Ще трябва да използвате POSIX израза [:space:] вместо това.

SQL Fiddle

Настройка на схема на Oracle 11g R2 :

Заявка 1 :

select *from ( select column_value str from table(sys.dbms_debug_vc2coll('123','1234','12345','12 135', '1', '12 3')))където regexp_like (str, '\d([()[:space:]#-]*\d){3,}') 

Резултати :

<предварителен код>| STR ||--------|| 1234 || 12345 || 12 135 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой е най-добрият начин за предварително компилиране на JSP с помощта на Ant

  2. Създаване на временна таблица на Oracle със същата структура на таблица като тази на съществуваща таблица

  3. Кодът при изпълнение отваря jdbc връзката, но не отпечатва данните от таблицата. Какво не е наред с този код?

  4. Грешка в SQL тригера - невалиден тригер

  5. преобразуване на стойности, разделени със запетая, в множество редове