Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle SQL Regex tidak mengembalikan hasil yang diharapkan

Oracle tidak mendukung grup yang tidak menangkap (?:) . Anda harus menggunakan grup penangkap sebagai gantinya.

Itu juga tidak menyukai karakter meta spasi putih gaya Perl \s cocok di dalam kelas karakter [] (ini akan cocok dengan karakter \ dan s bukannya spasi). Anda harus menggunakan ekspresi POSIX [:space:] sebagai gantinya.

SQL Fiddle

Pengaturan Skema Oracle 11g R2 :

Kueri 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,}')

Hasil :

|    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. ORA-01830 saat mengonversi angka menjadi kata

  2. Oracle Date - Cara menambahkan tahun hingga saat ini

  3. Nomor baris di server sql seperti LINE di USER_SOURCE oracle

  4. PLS-00221:'C1'(kursor) bukan prosedur atau tidak terdefinisi

  5. Nilai SQL MIN dari dua tabel