Ayuda Por Favor, Me hechan del Trabajo

From: "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda Por Favor, Me hechan del Trabajo
Date: 2005-05-05 20:05:23
Message-ID: BAY23-F34309CBC1D3EB7FE149E09B31A0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Hola....

Estoy trabajando con procedimientos almacenados, y me gustaría saber
cómo puedo devolver un record pero que tenga la estructura de una
tabla,
¿cómo podría hacer ésto?.

ME encantaría que me ayudasen cuanto antes, ya que me corre bastante
prisa conocer la respuesta.

Tengo la siguiente funcion :

CREATE OR REPLACE FUNCTION devolver_registro(varchar) RETURNS SETOF RECORD
AS '
DECLARE
registro RECORD;
BEGIN
FOR registro IN SELECT p.pon_emp_nidntfccion, p.pon_nevnto,
p.pon_ttulo
FROM ponencias p
WHERE p.pom_emp_nidntfccion=$1;
LOOP
RETURN NEXT registro ;
END LOOP ;
RETURN ;
END;'

LANGUAGE plpgsql;

la llamo de la siguiente manera:

select * from devolver_registro(1);

y me saca el siguiente error

** a column definition list is required for functions returning "record"

como invoco esa función. Es obligacion poner los parametros. que solucion
me pueden dar.

como puedo hacerlo sin esta estructura

SELECT * FROM devuelve_registro(14) as (xxx varchar, yyy varchar,
zzz int, www int);

Ah otra cosa como puedo hacer para que en esta linea de la funcion

FOR registro IN SELECT p.pon_emp_nidntfccion, p.pon_nevnto, p.pon_ttulo
FROM ponencias p

pueda poner

FOR registro IN SELECT * FROM ponencias p

y no me saque mas errores

Otra forma en que lo realizo es esta

CREATE OR REPLACE FUNCTION CPonencia (varchar) RETURNS SETOF RECORD AS '
DECLARE
registro RECORD;
BEGIN
FOR registro IN SELECT p.pon_emp_nidntfccion, p.pon_nevnto,
p.pon_ttulo
FROM ponencias p
WHERE p.pom_emp_nidntfccion=$1;
LOOP
RETURN NEXT registro ;
END LOOP ;
RETURN ;
END;'

LANGUAGE plpgsql;

lo llamo asi

SELECT * from Cponencia ('01') as (x varchar, y varchar, z varchar);

Me saca este erro.

ERROR: missing "LOOP" at end of SQL expression
CONTEXT: compile of PL/pgSQL function "cponencia" near line 4

Muchas Gracias.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juanky Moral 2005-05-05 20:22:04 Re: Ayuda Por Favor, Me hechan del Trabajo
Previous Message angel Iracheta 2005-05-05 20:00:38 Re: RE: [pgsql-es-ayuda] Retorno de una función