From: | Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Select * from tabla --> a String... |
Date: | 2005-12-07 19:54:46 |
Message-ID: | 01a301c5fb68$13540090$ea84a8c0@Nico |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Como nadie me pudo ayudar con lo anterior... empiezo a intentar armar algo de a poco.
Tengo un campo en una tabla que es del tipo varchar y no le puedo cargar algo del estilo:
insert into msg select row(tabla.*) from tabla
ERROR: column "texto" is of type character varying but expression is of type record
Alguien sabe que casting podria hacer?
muchas gracias
Nicolas.
----- Original Message -----
From: Nicolás Domínguez Florit
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Tuesday, December 06, 2005 9:15 AM
Subject: Re: [pgsql-es-ayuda] Select * from tabla --> a String...
Va un poco codigo un poco pseudo, lo que esta en negrita es lo que me interesaria hacer (lo otro, el contexto)
CREATE OR REPLACE FUNCTION migracion(varchar, varchar, varchar, varchar, char) RETURNS int4 AS '
DECLARE
Tabla ALIAS FOR $1;
Campo ALIAS FOR $2;
TablaPadre ALIAS FOR $3;
CampoPadre ALIAS FOR $4;
PermiteNulo ALIAS FOR $5;
BEGIN
--StringWhere = xxxxx
--StringIsNull = yyyyyy
EXECUTE ''CREATE TEMP TABLE "DHTEMP" AS (SELECT '' || quote_ident(Tabla) || ''.* FROM '' ||
quote_ident(TablaPadre) || '', '' || quote_ident(Tabla) || '' WHERE '' || StringWhere || '');'';
-- en DHTEMP tengo los registros que deben ir. Los depurados
-- en Tabla me quedaron todos.
-- Lo que necesitaria es una diferencia entre DHTEMP y Tabla y a esa diferencia mandarla a la tabla log_borrados
-- algo asi como...
-- insert into log_borrados SELECT row(tabla.*) FROM tabla WHERE este en tabla y no en dhtemp
-- El problema me surge cuando lo quiero hacer generico y no se como hacer el matching en el where
EXECUTE ''DELETE FROM '' || quote_ident(Tabla) || '';'';
EXECUTE ''INSERT INTO '' || quote_ident(Tabla) || '' SELECT * FROM '' || ''"DHTEMP";'';
EXECUTE ''DROP TABLE "DHTEMP";'';
RETURN 1;
END;
' LANGUAGE 'plpgsql' VOLATILE;
COMMENT ON FUNCTION migracion(varchar, varchar, varchar, varchar, char)
IS 'hace algo';
Gracias.
Nicolas.
----- Original Message -----
From: Luis Fernando Curiel Cabrera
To: Nicolás Domínguez Florit
Cc: Alvaro Herrera ; pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, December 05, 2005 5:14 PM
Subject: Re: [pgsql-es-ayuda] Select * from tabla --> a String...
Yo si quisiera ver el codigo y ver como funciona
On 12/5/05, Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar > wrote:
Perfecto,
con algo del estilo...
tabla ALIAS FOR $1;
insert into log SELECT row(tabla.*) FROM tabla WHERE xxxxx; --Falta
sintaxis :P
me funciono a la perfeccion. Si alguien quiere el codigo para mañana lo
tengo listo.
ALVARO... simplemente sos un CAPO!
gracias
Nico.
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Nicolás Domínguez Florit" < ndomin(at)rec(dot)unicen(dot)edu(dot)ar>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Monday, December 05, 2005 10:34 AM
Subject: Re: [pgsql-es-ayuda] Select * from tabla --> a String...
> Nicolás Domínguez Florit escribió:
>> Hola F1's!!!
>>
>> Tengo la siguiente consulta, tengo una tabla con dos campos del tipo
>> varchar()
>>
>> | nombre_table | ...datos... |
>>
>> Lo que quiero es hacer un select de una tabla y completar el campo datos
>> con un "aplanado" de los campos de la tabla.
>> es decir, si la tabla es documento:
>>
>> |Tipo|numero|otro_campo|
>>
>> tengo que ver la forma de poner en |...datos...|, tipo + numero +
>> otro_campo. (si es separados por como, espacios o por lo que sea mejor!)
>
> alvherre=# create table foo (a int);
> CREATE TABLE
> alvherre=# create table bar (a int, b text, c text);
> CREATE TABLE
> alvherre=# insert into foo values (1);
> INSERT 0 1
> alvherre=# insert into foo values (2);
> INSERT 0 1
> alvherre=# insert into bar values (1, 'uno', 'primero');
> INSERT 0 1
> alvherre=# insert into bar values (2, 'dos', 'segundo');
> INSERT 0 1
> lvherre=# select a, row(bar.*) from foo join bar using (a);
> a | row
> ---+---------------------
> 1 | ("(1,uno,primero)")
> 2 | ("(2,dos,segundo)")
> (2 filas)
>
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.362 / Virus Database: 267.13.11/191 - Release Date:
> 02/12/2005
>
>
---------------------------(fin del mensaje)---------------------------
TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
--
Luis Fernando Curiel Cabrera
- Professional ABACO DE BOLITAS Developer.
- Certified ABACO DE BOLITAS Programmer.
----------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.362 / Virus Database: 267.13.11/191 - Release Date: 02/12/2005
------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.362 / Virus Database: 267.13.12/192 - Release Date: 05/12/2005
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2005-12-07 19:58:41 | Re: Select * from tabla --> a String... |
Previous Message | Mario Gonzalez | 2005-12-07 19:33:28 | Re: Problema al conectarme a traves del php con Postgres. |