From: | Horacio Miranda <hmiranda(at)gmail(dot)com> |
---|---|
To: | Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Otra ves con los arrays |
Date: | 2005-09-23 18:57:36 |
Message-ID: | f2b9e749050923115714f3f3ed@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Se me ocurre a simple vista que te falta por ahí algún \" para que caracter "
El 23/09/05, Aldo Alexander Leyva Alvarado<aleyva2004(at)gmail(dot)com> escribió:
> Hola a todos
>
> Una consulta, tengo esta funcion, no bota ningun error, la idea es
> retornar un array text de cualquier consulta SQL que bote un registro,
> la consulta puede incluir campos numericos y de texto, el retorno es
> de este tipo:
>
> {dato1, dato2} --Cuando los campos son Numeros
> {dato1, "dato2"} --Numero y texto
>
> Este retorno lo recibe un script PHP, de que forma puedo hacer que el
> php entienda que este string es un array
> O como puedo indicar en la funcion que simpre me retorne:
> {"5","5"} y no {5,5}
>
> Gracias de Antemano por sus respuestas
>
>
> CREATE OR REPLACE FUNCTION sp_select_simple(varchar, int4) RETURNS text[] AS'
> DECLARE
> sql_select ALIAS FOR $1;
> n_campos ALIAS FOR $2;
>
> rc_fila RECORD;
> array_retorno text[]=''{}'';
> BEGIN
> /*
> Retorna en un arreglo el resultado de una consulta, la consulta debe
> retornar un solo registro de como maximo 5 columnas
> */
> RAISE NOTICE ''******* SELECT SIMPLE ARRAY - INICIO *******'';
>
>
> FOR rc_fila IN EXECUTE sql_select LOOP
> IF n_campos=1 THEN
> array_retorno[1]:=rc_fila.columna1;
> ELSIF n_campos=2 THEN
> array_retorno[1]:=CAST(rc_fila.columna1 AS VARCHAR);
> array_retorno[2]:=CAST(rc_fila.columna2 AS VARCHAR);
> ELSIF n_campos=3 THEN
> array_retorno[1]:=rc_fila.columna1;
> array_retorno[2]:=rc_fila.columna2;
> array_retorno[3]:=rc_fila.columna3;
> ELSIF n_campos=4 THEN
> array_retorno[1]:=rc_fila.columna1;
> array_retorno[2]:=rc_fila.columna2;
> array_retorno[3]:=rc_fila.columna3;
> array_retorno[4]:=rc_fila.columna4;
> ELSIF n_campos=5 THEN
> array_retorno[1]:=rc_fila.columna1;
> array_retorno[2]:=rc_fila.columna2;
> array_retorno[3]:=rc_fila.columna3;
> array_retorno[4]:=rc_fila.columna4;
> array_retorno[5]:=rc_fila.columna5;
> END IF;
>
> RAISE NOTICE ''******* SELECT SIMPLE ARRAY - FIN ******'';
>
> RETURN array_retorno;
> END LOOP;
>
> RAISE NOTICE ''******* SELECT SIMPLE ARRAY - ERROR ******'';
> RETURN -1;
>
> END;
> 'LANGUAGE 'plpgsql';
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>
--
Saludos Horacio Miranda.
RedHat Certified Engineer.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-09-23 20:26:32 | Re: Ayuda con la conexion - Urgente |
Previous Message | Alvaro Herrera | 2005-09-23 18:40:08 | Re: query asincronico y SPI |