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

валидиране на полета за имейл / пощенски код в sql/oracle

Ето синтаксиса на regexp за имейл адрес, включително кавички

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

Така че можете да използвате regexp_like() в клауза where или regexp_substr(), за да проверите дали вашето поле съдържа валиден имейл адрес. Ето един пример - ще видите, че regexp_substr() връща NULL на адреса, в който липсва .domain, което не успява да провери валидността на подниза. Оттам можете да изградите ограничение за проверка около него или да го наложите с помощта на тригер (ммм) и т.н.

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

Използвайки същите данни, ето заявка, която ограничава само валидни имейл адреси, използвайки 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]

Потърсете в страницата със съдържание на справочника за SQL за regexp, за да видите поддръжката на регулярен израз.



  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 Database 11g чрез ssh тунелна верига (двоен тунел, сървър в мрежата на компанията)?

  2. Как да намеря привилегиите и ролите, предоставени на потребител в Oracle?

  3. oracle свързване от множество родители

  4. Преобразуването на SQL дата води до невалиден параметър на модела на числов формат.

  5. Цикъл върху стойности, създаване на динамична заявка и добавяне към набор от резултати