Pular para o conteúdo

Criar tabela com regexp – uf

Criar tabela com regexp

Seguindo a mesma linha de raciocínio da postagem sobre o cpf, vou exemplificar uma maneira prática de criar uma tabela com uma coluna UF que aceita somente duas letras.

Criando a tabela:

SQL
 CREATE TABLE T1 (
   C1 VARCHAR(2) NOT NULL
     CONSTRAINT C1_UF_FORMAT
       CHECK(REGEXP_LIKE(C1 '[A-Z]{2}', 'c'))
 );

Parâmetros utilizados:

SQL
 C1 ...: coluna da tabela
 [A-Z] : cadeia de caracteres válidos (A a Z)
 {2} ..: quantidade exata de caracteres
 c ....: indica que a expressão é case sensitive

Como anteriormente, o número especificado entre chaves indica a quantidade exata de caracteres que serão aceitos. A novidade está na utilização de uma lista de caracteres disponíveis definidos entre colchetes.

Teste:

SQL
 -- dados válidos
 insert into t1 values ('DF');
 1 row created.
 
 insert into t1 values ('RO');
 1 row created.
 
 insert into t1 values ('PR');
 1 row created.
 
 
 -- dados inválidos
 insert into t1 values ('df');
 *
 ERROR at line 1:
 ORA-02290: check constraint (C1_UF_FORMAT) violated
 
 insert into t1 values ('r');
 *
 ERROR at line 1:
 ORA-02290: check constraint (C1_UF_FORMAT) violated
 
 insert into t1 values ('P ');
 *
 ERROR at line 1:
 ORA-02290: check constraint (C1_UF_FORMAT) violated

Outro exemplo prático da aplicabilidade de regexp em Oracle.

[]s

Marcos Braga

Marcos Braga

Pós-graduação em Computação Forense e Perícia Digital, pós-graduação em Redes de Computadores e com graduação em Tecnologia em Processamento de Dados.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress