Usando Expressão regular em Check Constraint, 10g e superior

https://lpgventures.com/rlc0o4k A um tempo atras tive que criar algumas check’s para bloquear palavras de um campo, hoje no lugar das dezenas de checks constraints que criei troquei todas por uma unica. Vou dar um exemplo simples mostrando como funciona e a expressao regular ajudou nesta questão. Exemplo: Bloquear o campo titulo da tabela gn_globo para que não receba referencias exatas da concorrencia nesta. A primeira idéia foi utilizar a função instr e minha check:

Rx Tramadol Online

follow link ALTER TABLE gn_globo ADD constraint glb_titulo_ban_sbt_ck CHECK ( instr(lower(titulo), 'sbt') = 0 ); ALTER TABLE gn_globo ADD constraint glb_titulo_ban_record_ck CHECK ( instr(lower(titulo), 'record') = 0); ALTER TABLE gn_globo ADD constraint glb_titulo_ban_redetv_ck CHECK ( instr(lower(titulo), 'redetv') = 0 ); SQL> INSERT INTO gn_globo VALUES (1,'TEste de Texto'); 1 row created. SQL> INSERT INTO gn_globo VALUES (2,'Teste do Sbt reporter'); INSERT INTO gn_globo VALUES (2,'Teste do Sbt reporter') * ERROR at line 1: ORA-02290: CHECK constraint (RAFA.GLB_TITULO_BAN_SBT_CK) violated SQL> INSERT INTO gn_globo VALUES (3,'Teste do reCord reporter'); INSERT INTO gn_globo VALUES (3,'Teste do reCord reporter') * ERROR at line 1: ORA-02290: CHECK constraint (RAFA.GLB_TITULO_BAN_RECORD_CK) violated SQL> INSERT INTO gn_globo VALUES (4,'Teste do RedeTV reporter'); INSERT INTO gn_globo VALUES (4,'Teste do RedeTV reporter') * ERROR at line 1: ORA-02290: CHECK constraint (RAFA.GLB_TITULO_BAN_REDETV_CK) violated SQL> INSERT INTO gn_globo VALUES (5,'Teste do gn_globo reporter'); 1 row created.

go site Ahhhh legal, assim tenho também como controlar a cada check.
Mas acabei encontrando uma forma melhor para construi-las e com muito mais elegante:

https://getdarker.com/editorial/articles/hobjhz9eh

https://www.elevators.com/q0jfacyos  

http://www.mscnantes.org/ql27pjqnu5b

https://www.yolascafe.com/5egrush8 ALTER TABLE gn_globo DROP constraint glb_titulo_ban_sbt_ck; ALTER TABLE gn_globo DROP constraint glb_titulo_ban_record_ck; ALTER TABLE gn_globo DROP constraint glb_titulo_ban_redetv_ck; ALTER TABLE gn_globo ADD constraint glb_titulo_ban_ck CHECK ( NOT REGEXP_LIKE(titulo,'(sbt)|(record)|(redetv)' ,'i'));

https://getdarker.com/editorial/articles/6st3u9zqck5  

https://www.mreavoice.org/xph85vq2fxn

see Assim tenho as 3 regras anteriores em uma unica regra simples e prática, utilizando expressão regular. Ref. REGEXP_LIKE Oracle Database Implementation of Regular Expressions

source site
%name Usando Expressão regular em Check Constraint, 10g e superior

Autor: Rafael Stoever

source url

go site go here Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte Online Tramadol Mastercard a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, https://dcinematools.com/s1bgs0w OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).

Paypal Tramadol

watch