From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda Concatenacion y Retorno en funcion |
Date: | 2005-08-17 00:22:06 |
Message-ID: | c2d9e70e05081617229fc4833@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 8/16/05, P(at)blo Villad@ <andresv50(at)hotmail(dot)com> wrote:
> Hola A Todos
>
> Mucha Gracia Por La Colaboracion que me puedan dar.
>
> Resulta que tengo una funcion
>
>
> CREATE TYPE tdatos AS (cedula varchar(12), nombre varchar(100));
>
> DROP FUNCTION datos_ejemplo (varchar);
>
> CREATE FUNCTION datos_ejemplo (varchar) RETURNS SETOF tdatos AS'
>
> DECLARE
> registro RECORD;
>
> BEGIN
> FOR registro IN
>
> SELECT emp_nidntfccion, (emp_nmbre \|| \' \' \|| emp_papllido \|| \' \' \||
>
> emp_sapllido) as nombre from empleado where emp_nidntfccion=$1
>
> LOOP
> RETURN NEXT registro;
> END LOOP;
> RETURN;
> END;'
>
> LANGUAGE plpgsql;
>
prueba con la funcion asi si estas usando postgres anterior a 8.x.x:
CREATE FUNCTION datos_ejemplo (varchar) RETURNS tdatos AS '
SELECT emp_nidntfccion, (emp_nmbre || \' \' || emp_papllido ||
\' \' ||
emp_sapllido) as nombre
from empleado where emp_nidntfccion=$1; '
LANGUAGE sql;
y asi (mas entendible si usas versiones igual o superior a 8.x.x):
CREATE FUNCTION datos_ejemplo (varchar) RETURNS tdatos AS $$
SELECT emp_nidntfccion, (emp_nmbre || ' ' || emp_papllido || ' ' ||
emp_sapllido) as nombre
from empleado where emp_nidntfccion=$1; $$
LANGUAGE sql;
> A la Hora de la creacion no me saca ningun error pero al momento de hacer el
>
> llamado ocurre lo siguiente.
>
> ERROR: wrong record type supplied in RETURN NEXT
> CONTEXT: PL/pgSQL function "datos_ejemplo" line 16 at return next
>
> Estoy un poco cansado y no comprendo ese error
>
el problema es en la concatenacion, el operador || no necesita
caracter de escape
> Que puedo hacer..
>
> Como mas puedo concatenar la cadenas.....
>
> Muchas Gracias..
> Muchas Gracias..
>
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html
>
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-08-17 01:16:30 | Re: Traducción de manuales. |
Previous Message | Jaime Casanova | 2005-08-16 23:40:50 | Re: en Xp |