From: | Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Otra ves con los arrays |
Date: | 2005-09-23 15:56:14 |
Message-ID: | 7a47bbbd050923085619d8ab1b@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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';
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Carlos Badillo Goy | 2005-09-23 16:05:35 | Re: Ayuda con la conexion - Urgente - sin conexion |
Previous Message | Manuel Sugawara | 2005-09-23 15:36:20 | Re: Convertir VarChar a INT4 y problema con Unicode |