RE: ayuda remplazo masivo en un campo

From: "Miguel Angel" <mvillagomez(at)sayab(dot)com(dot)mx>
To: "'Raul Caso'" <feve18(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: ayuda remplazo masivo en un campo
Date: 2006-03-15 21:53:41
Message-ID: 20060315215432.346FD9DC82D@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Teniendo esta tabla:

Prueba

valor1 valor2

1 5:45 p.m.

2 3:45 a.m.

3 12:00 p.m.

Y ejecutando esta function:

CREATE OR REPLACE FUNCTION cambia() RETURNS INTEGER AS $$

DECLARE

a RECORD;

cont INTEGER:=0;

BEGIN

FOR a IN (SELECT * FROM prueba) LOOP

UPDATE prueba SET valor2=(SELECT REPLACE(a.valor2 , '.' ,'')) WHERE
valor1=a.valor1 AND valor2=a.valor2;

cont:=cont+1;

END LOOP;

RAISE NOTICE '% registros modificados',cont;

RETURN cont;

END;

$$ LANGUAGE PLPGSQL;

SELECT cambia();

Obtengo:

Prueba

valor1 valor2

1 5:45 pm

2 3:45 am

3 12:00 pm

Para cada valor de la tabla. Solo ajusta la función a tus necesidades y
necesitaras instalar el lenguaje plpgsql, para que funcione.

_____

De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Raul Caso
Enviado el: Miércoles, 15 de Marzo de 2006 03:00 p.m.
Para: Raul Caso; lista postgresql; alvherre(at)commandprompt(dot)com
Asunto: Re: [pgsql-es-ayuda] ayuda remplazo masivo en un campo

El día 15/03/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:

Raul Caso escribió:
> Hola a ver si me pueden dar una idea tengo una tabla con 2 mil registros
> esta tabla tiene un campo de tipo varchar que guarda un contenido con el
> formato hh:mm a.m. o hh:mm p.m .

Huh, te equivocaste estrepitosamente de tipo de dato. Para guardar
horas no deberias estar usando "varchar", sino "time".

> el problema es que quiero cambiar las
> extensiones " a.m. y p.m." por am y pm
> sin ningun punto; osea hacer un update masivo para todos los registros no
se
> si me pueden dar alguna idea

Para eso usa UPDATE sin especificar WHERE.

Exacto los que crearon la tabla equivocaron el tipo de dato y debo seguir
trabajando asi
pero lo que pasa es cada fila tiene un valor algo asi 5:45 p.m. y para
hacer mis comparaciones hago un cast a time y no me lo acepta porque los
campos tienen p.m. osea necesito eliminar los puntos despues de cada letra
pero sin modificar el valor de la hora del mismo campo ,un expresion regular
en mi sentecia sql update me ayudaria? como lo podria hacer?
--
¿Quieres ser parte del 5% o del 95%?
http://www.ixp.net/rcaso
Raulinho
97033825-4327239

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Gonzalez 2006-03-15 22:01:58 Re: Editar campo de tabla
Previous Message Orlando Alarcon 2006-03-15 21:52:56 Editar campo de tabla