Re: recorrer old

From: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
To: Rodrigo Gonzalez <rjgonzale(at)estrads(dot)com(dot)ar>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: recorrer old
Date: 2011-11-08 18:10:03
Message-ID: 1320775803.15660.YahooMailNeo@web27408.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Intenté hacerlo pero me sale el error:

ERROR:  los subíndices de arrays están fuera de rango
CONTEXT:  PL/pgSQL function "fn_borradocopia" line 10 at asignación

********** Error **********

Acá esta el script:

create or replace function public.fn_borradocopia () returns trigger
as
$$
declare
    arrDatos bytea[][];
    i integer =1;
    r record;
begin   
    FOR r IN SELECT (each(hstore(OLD))).*
    LOOP
        arrDatos[i][1] := r.key;
        arrDatos[i][2] := r.value;
        --RAISE NOTICE 'key:%, value: %', r.key, r.value;
        i=i+1;
    END LOOP;
    insert into borradoscopia values (TG_RELNAME,arrDatos);
    return OLD;
end;
$$
LANGUAGE plpgsql VOLATILE
  COST 100;

--aca van cada trigger para cada tabla
drop TRIGGER trg_borradocopia on clientesborradocopia;
CREATE TRIGGER trg_borradocopia BEFORE DELETE ON clientesborradocopia
    FOR EACH ROW EXECUTE PROCEDURE  fn_borradocopia () ; 

¿Que estoy haciendo mal?

Gracias

>________________________________
>De: Rodrigo Gonzalez <rjgonzale(at)estrads(dot)com(dot)ar>
>Para: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
>CC: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
>Enviado: viernes 4 de noviembre de 2011 12:05
>Asunto: Re: [pgsql-es-ayuda] recorrer old
>
>
>El 04/11/11 13:56, Alejandro Carrillo escribió:
>Y eso me soporta bien la copia de tipos de datos binarios (oid, public.lo, bytea)???
>>
No tengo idea...pero es simple de probar con una funcion que lea de una tabla y muestre los datos no?
>Si haces las pruebas por favor envia tus resultados para que los
demas sepamos
>
>Gracias
>
>Rodrigo
>
>
>>
>>
>>>________________________________
>>>De: Rodrigo Gonzalez <rjgonzale(at)estrads(dot)com(dot)ar>
>>>Para: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
>>>CC: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>; "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
>>>Enviado: viernes 4 de noviembre de 2011 11:29
>>>Asunto: Re: [pgsql-es-ayuda] recorrer old
>>>
>>>
>>>El 04/11/11 11:46, Alejandro Carrillo escribió:
>>>y de ahi como la paso a array?? con select array((each(hstore(clientesborradocopia))).value) from clientesborradocopia where idcliente = 4
>>>>no me deja
>>>>
Lee http://okbob.blogspot.com/2009/10/dynamic-access-to-record-fields-in.html
>>>
>>>Lo interesante para vos es:
>>>
>>>
>>>FOR r IN SELECT (each(hstore(NEW))).* LOOP RAISE NOTICE 'key:%, value: %', r.key, r.value; END LOOP; O sea que ahi tenes lo que precisas para leer NEW y OLD Espero que te sirva Saludos Rodrigo
>>>
>>>
>>>>
>>>>
>>>>>________________________________
>>>>>De: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
>>>>>Para: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
>>>>>CC: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
>>>>>Enviado: viernes 4 de noviembre de 2011 9:30
>>>>>Asunto: Re: [pgsql-es-ayuda] recorrer old
>>>>>
>>>>>
>>>>>Excerpts from Alejandro Carrillo's
message of jue nov 03 15:43:29 -0300
2011:
>>>>>> Buenas tardes,
>>>>>>
>>>>>> Conocen como copiar los datos del
registro OLD, en los triggers de
plpgsql, de la siguiente forma (o con
alguna otra forma):
>>>>>>
>>>>>> arrDatos bytea[];
>>>>>>
>>>>>> for (e=0;e<=OLD.numcampos;e++){
>>>>>>     arrDatos[e]=old[e]::bytea;
>>>>>> }
>>>>>
>>>>>QUizas podrias usar hstore; tiene una
funcion que convierte un record
>>>>>en un hstore si mal no recuerdo.
>>>>>
>>>>>--
>>>>>Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Angel 2011-11-08 18:36:30 averiguar la estructura de una función
Previous Message Alvaro Herrera 2011-11-08 16:07:09 Re: Buscar texto con prefijo y sufijo determinado