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

regexp_substr bỏ qua các vị trí trống

Regexp_substr hoạt động theo cách này:

Nếu số lần xuất hiện lớn hơn 1, thì cơ sở dữ liệu tìm kiếm lần xuất hiện thứ hai bắt đầu bằng ký tự đầu tiên sau lần xuất hiện đầu tiên của mẫu , và kể từ đó trở đi. Hành vi này khác với hàm SUBSTR, hàm này bắt đầu tìm kiếm lần xuất hiện thứ hai ở ký tự thứ hai của lần xuất hiện đầu tiên.

Vì vậy, mẫu [^ |] sẽ tìm kiếm các đường ống NON, nghĩa là nó sẽ bỏ qua các đường ống liên tiếp ("||") để tìm kiếm một ký tự không phải là đường ống dẫn.

Bạn có thể thử:

select trim(regexp_substr(replace('A|test||string', '|', '| '), '[^|]+', 1, 4)) from dual;

Điều này sẽ thay thế dấu "|" với "|" và cho phép bạn so khớp dựa trên mẫu [^ |]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số hàng trong bảng Oracle theo số lượng (*) so với NUM_ROWS từ DBA_TABLES

  2. Làm thế nào để gọi hàm Oracle trong Python?

  3. Truy vấn con đệ quy với sắp xếp

  4. Làm thế nào để liệt kê tất cả các bảng trong Oracle

  5. Khóa cơ sở dữ liệu oracle trước khi chạy các tập lệnh Xóa / Tải dữ liệu