Re: Select * from tabla --> a String...

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-06 12:15:56
Message-ID: 00e201c5fa5e$cfc65a80$ea84a8c0@Nico
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gustavo Garay 2005-12-06 12:50:03 Re: [pgsql-es-ayuda] Funcion que devuelta el tamaño de un campo
Previous Message Mario Soto Cordones - Venezuela 2005-12-06 11:42:44 Re: Tiempo de vida de las transacciones