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

xác thực trên các trường email / mã bưu điện trong sql / oracle

Đây là cú pháp regexp cho một địa chỉ email, bao gồm cả dấu ngoặc kép

'[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}'

Vì vậy, bạn có thể sử dụng regexp_like () trong mệnh đề where hoặc regexp_substr () để kiểm tra xem trường của bạn có chứa địa chỉ email hợp lệ hay không. Đây là một ví dụ - bạn sẽ thấy rằng regexp_substr () trả về NULL trên địa chỉ thiếu miền .domain, điều này không thể xác thực chuỗi con. Từ đó, bạn có thể xây dựng ràng buộc kiểm tra xung quanh nó hoặc thực thi nó bằng cách sử dụng trình kích hoạt (yuck), v.v.

SQL> desc email
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMAIL_ID                                           NUMBER
 EMAIL_ADDRESS                                      VARCHAR2(128)


SQL> select * from email;

  EMAIL_ID EMAIL_ADDRESS
---------- ----------------------------------------
         1 [email protected]
         2 [email protected]
         3 [email protected]
         4 [email protected]_domaindotorg


SQL> @qry2
SQL> column email_address format a40
SQL> column substr_result format a30
SQL> SELECT  email_address
  2       ,  regexp_substr(email_address,'[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}') substr_result
  3    FROM  email
  4  /

EMAIL_ADDRESS                            SUBSTR_RESULT
---------------------------------------- ------------------------------
[email protected]                           [email protected]
[email protected]                             [email protected]
[email protected]                     [email protected]
[email protected]_domaindotorg

Sử dụng cùng một dữ liệu, đây là một truy vấn chỉ giới hạn các địa chỉ email hợp lệ, sử dụng REGEXP_LIKE

SQL> column email_address format a40
SQL> column substr_result format a30
SQL> SELECT  email_address
  2    FROM  email
  3   WHERE  REGEXP_LIKE (email_address, '[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}');

EMAIL_ADDRESS
----------------------------------------
[email protected]
[email protected]
[email protected]

Tìm kiếm trang nội dung của Tham chiếu SQL cho regexp để xem hỗ trợ biểu thức chính quy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết hợp Trái và Phải bằng Đăng nhập Dấu cộng (+) trong Oracle

  2. Nhận bản dựng con rối không thành công khi tập lệnh SQL chứa không thực thi được

  3. Tạo bảng và chèn trong cùng một quy trình trong pl / sql

  4. Lỗi Oracle Apex 20.1:Lỗi xử lý xác thực

  5. Chèn vào bảng bằng cách sử dụng tập hợp kết quả của truy vấn kép?