Re: Problemas usando like

From: "Marcos Saldivar" <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>
To: "Roberto A(dot)" <gedeon56(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problemas usando like
Date: 2008-11-11 20:25:05
Message-ID: 1c4d91ab0811111225j2c19aa27m2414b3e90d2f4b36@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/11/11 Roberto A. <gedeon56(at)gmail(dot)com>:
> Roberto Almanza LL.
>
> Hola Lista .
> Mi problema es el siguiente.
>
>
> CREATE DOMAIN var_nomb as varchar(30) not null;
>
> CREATE TABLE DEPARTAMENTO( cod_dep varchar(15) primary key,
> nombre varchar(100) not null
> );
>
> CREATE TABLE PROFESOR( dni varchar(15) primary key,
> nombre var_nomb,
> apellido var_nomb,
> titulacion varchar not null,
> cod_dep varchar(15),
> foreign key(cod_dep) references departamento(cod_dep)
>
>
> El problema es el siguiente
> - Necesito validar el campo dni para que sea de este tipo "1.123.452-L"
>
> ej.
> insert into alumno values('1.123.452-L','Jose
> Antonio','Arenas','Bernabé','96-568-47-24','Pza. La paz, 3',
> 'Altea','Alicante','25-05-1973','C');
>
> Para esto intente usar la sintaxis de sql que es " dni like
> '[0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]-[A-Z]' "
> pero no funciona en postgres
>
> Pregunta
> -¿Cual es la sintaxis que debo usar para validar esta condicion en
> postgres?. o como se maneja el operador like en postgres
> - Como inplemento el operador like en los triggers.

si usas "~" asi:

select '1.234.456-l' ~ '[1-9].([0-9]{3}).([0-9]{3})-[a-zA-z]';

Creo que seria mejor que separes en dos campos uno para 1234456 bigint
y un campo varchar(1) para la letra(l)... Para el RUN de Chile lo hago
asi y creo un funcion que se le entrega el RUN y calcula el digito
verificador.

Saludos.-

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guido Barosio 2008-11-11 20:30:44 Argentina PUG
Previous Message Julio Cesar Rodriguez Dominguez 2008-11-11 20:18:26 Re: Problema con Copy to delimiter