Re: Ayuda Concatenacion y Retorno en funcion

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 ;)

In response to

Browse pgsql-es-ayuda by date

  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