Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

funcion postgres

Estas en el tema de funcion postgres en el foro de PostgreSQL en Foros del Web. amigos quesiera q me dijieran si estoy haciendo lo correcto al crear esta funcion. puesto que me sale un error CREATE OR REPLACE FUNCTION prueba() ...
  #1 (permalink)  
Antiguo 09/05/2007, 10:23
 
Fecha de Ingreso: febrero-2007
Mensajes: 39
Antigüedad: 17 años, 10 meses
Puntos: 0
funcion postgres

amigos quesiera q me dijieran si estoy haciendo lo correcto al crear esta funcion. puesto que me sale un error

CREATE OR REPLACE FUNCTION prueba()
RETURNS SETOF record AS
$BODY$
BEGIN
select * from proveedor;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

utilizo el lenguaje plpgsql , y deseo colocar algunas condiciones IF pero me sale este error:

ERROR: SELECT query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results, use PERFORM instead.
Context: PL/pgSQL function "prueba" line 2 at SQL statement


creo q debo asignar a algo .. pero como
les agradesco su ayuda
  #2 (permalink)  
Antiguo 22/05/2007, 10:54
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 10 meses
Puntos: 13
Re: funcion postgres

Buenas,

Utiliza select into para guardar el resultado de la select.

Postgre tiene una documentación muy buena....

Un saludo
  #3 (permalink)  
Antiguo 22/05/2007, 13:20
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: funcion postgres

Si la verdad tienes un pequeño error, te sugiero coloques algo como lo siguiente:

CREATE OR REPLACE FUNCTION prueba()
RETURNS SETOF record AS
$BODY$
DECLARE
reg_prov RECORD;
BEGIN
select * into reg_prov from proveedor;
RETURN reg_prov;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


Espero te sirva.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:55.