sql >> Databáze >  >> RDS >> Oracle

ověření na polích e-mailu / PSČ v sql/oracle

Zde je syntaxe regulárního výrazu pro e-mailovou adresu, včetně uvozovek

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

Takže můžete použít regexp_like() v klauzuli where nebo regexp_substr() ke kontrole, zda vaše pole obsahuje platnou e-mailovou adresu. Zde je příklad – uvidíte, že regexp_substr() vrací NULL na adrese, kde chybí doména .domain, což selže při ověření podřetězce. Odtud můžete kolem něj vytvořit kontrolní omezení nebo jej vynutit pomocí spouštěče (fuj) atd.

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

Pomocí stejných dat je zde dotaz, který omezuje pouze platné e-mailové adresy pomocí 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]

Prohledejte stránku s obsahem Reference SQL pro regulární výraz zobrazíte podporu regulárních výrazů.



  1. Hrát si! Framework 1.2.4 --- Nastavení C3P0, aby se předešlo selhání komunikačního spoje při nečinnosti

  2. Jak omezit hodnotu sloupce v SQLite / MySQL

  3. Problém Percona 5.6 InnoDB nepoužívá správně indexy

  4. Levé spojení nedává hodnoty null v tabulce sql