Re: Consulta utilizando Arrays.

From: Anthony <asotolongo(at)uci(dot)cu>
To: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta utilizando Arrays.
Date: 2011-07-04 21:01:07
Message-ID: 4E122A13.6030004@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 04/07/2011 16:45, Lazaro Rubén García Martinez escribió:
> Hola a todos en la lista, necesito realizar un procedimiento en el que pase un arreglo (algo como tipo de clave , valor) cuyos datos los necesito insertar en una tabla.
> El arreglo tendría la siguiente estructura
>
> {{1, "valor1"},{2, "valor2"}}.
>
> Como el arreglo contiene columnas donde primeramente hay un dato de tipo entero seguido de un varchar cree un tipo de dato para almacenar el arreglo, pero sinceramente no doy con lo que necesito hacer.
>
> Alguien me pudiera decir de que forma pudiera recorrer el arreglo y poder seleccionar cada valor para poder trabajar con estos.
>
> Mas o menos la idea del procedimiento es la siguiente:
>
> El tipo de dato es este:
> CREATE TYPE public.dato_compuesto AS (
> a INTEGER,
> b VARCHAR(20)
> );
>
> Este es el procedimiento:
>
> CREATE OR REPLACE FUNCTION public.function1 ( datos public.dato_compuesto) RETURNS pg_catalog.void AS
> $body$
> DECLARE
> size integer := array_length(datos);
> BEGIN
> for i IN 1..size
> Loop
> INSERT INTO my_table
> (
> clave,
> valor
> )
> VALUES (
> datos[i][1],
> datos[i][2]
> );
> END Loop;
> END;
> $body$
> LANGUAGE 'plpgsql'
> VOLATILE
> RETURNS NULL ON NULL INPUT
> SECURITY INVOKER
> COST 100;
>
> La llamada la realizo de la siguiente forma:
>
> SELECT * FROM public.function1('{1,"Mi valor"}');
>
> Y el error que me da es este:
>
> ERROR: literal de record no es válido: «{1,"Mi valor"}»
>
> saludos y muchas gracias por su tiempo.
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
mira a aver si tienes algun problema con la comillas dobles al pasarle
los parametros a la funcion ponle comillas simples con caracteres de escape.
saludos

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jorge Tornero 2011-07-05 08:15:17 Restauración pg_dump
Previous Message Alvaro Herrera 2011-07-04 21:00:05 Re: Consulta utilizando Arrays.