Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle SQL Regex không trả về kết quả mong đợi

Oracle không hỗ trợ các nhóm không nắm bắt (?:) . Thay vào đó, bạn sẽ cần sử dụng nhóm chụp.

Nó cũng không thích siêu ký tự khoảng trắng kiểu perl \s khớp bên trong một lớp ký tự [] (nó sẽ khớp với các ký tự \s thay vì khoảng trắng). Bạn sẽ cần sử dụng biểu thức POSIX [:space:] thay vào đó.

SQL Fiddle

Thiết lập lược đồ Oracle 11g R2 :

Truy vấn 1 :

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

Kết quả :

|    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. Oracle sqlldr:cột không được phép ở đây

  2. Tắt và sau đó bật tất cả các chỉ mục bảng trong Oracle

  3. Kết nối với oracle từ c #

  4. Tại sao Hibernate chuyển sang sử dụng LONG qua CLOB?

  5. Truy vấn sql trên rownum