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

Existuje databázový stroj, který umožňuje omezení dotazovatelného pole specifikované RegEx?

V Oracle můžete zadat vlastní omezení , ve kterém můžete používat funkce, které vyhodnocují regexp; například:

SQL> create table test_pattern ( txt varchar2(1000))
  2  /

Table created.

SQL> alter table test_pattern add constraint check_pattern check (regexp_instr(txt, '^START') != 0)
  2  /

Table altered.

SQL> insert into test_pattern values ('START a d f  g ')
  2  /

1 row created.

SQL> insert into test_pattern values ('_START a d f  g ')
  2  /
insert into test_pattern values ('_START a d f  g ')
*
ERROR at line 1:
ORA-02290: check constraint (SIUINTEGRA.CHECK_PATTERN) violated

Můžete získat informace o omezeních, která jste nastavili, například:

select *
from dba_constraints       
where table_name = 'TEST_PATTERN'


  1. XML nebo Database Table pro uložení nastavení

  2. Jak odstranit úvodní a koncové mezery v SQL Server – TRIM()

  3. Jak zabránit tomu, aby se na webových stránkách objevovaly podivné postavy

  4. Cizí klíče vs rozdělení