Bases de Datos => Otras Bases de Datos => PostgreSQL => Mensaje iniciado por: omar125-02 en Viernes 25 de Febrero de 2011, 19:49
Título: POBLEMAS CON RETORNOS DE FUNCIONES
Publicado por: omar125-02 en Viernes 25 de Febrero de 2011, 19:49
hola, ayudenme please. tengo una funcion que quiero me retorne varios de datos -He creado una tabla "tipoasociado", con columnas: idtipoas, tipoasociado y estado -he creado una funcion "usp_tipoasociado", la cual recibe parametro de entrada desde java para consultar: -Entonces cundo la llamo desde java: me sale el siguiente mensaje:
ERROR:consulta no tiene un destino para los datos de resultado......
Para mas especificacion les pongo my funcion:
CREATE OR REPLACE FUNCTION usp_tipoasociado(didtipoas integer, dtipoasociado character) RETURNS tipoasociado AS $BODY$ BEGIN SELECT TipoAsociado FROM tipoasociado where(Id_TipoAsociado=didtipoas);
end;$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; ALTER FUNCTION usp_tipoasociado(integer, character) OWNER TO postgres;
-Yo llamo my funcion desde java asi: ItemsTipoAsociado=objeto.SeleccionarTodo("{call usp_tipoasociado(1,'A')}"); /////Este codigo llama al codigo sguiente:
ya que lo que andas buscando es un objeto tipo datatable, y es posible que te este devolviendo otra cosa.
suerte! :hola:
Título: BUSCADOR EN POSTGRES
Publicado por: omar125-02 en Martes 22 de Marzo de 2011, 16:46
Hola. Tengo un procedimiento almacenado en MYSQL que me sirve para buscar datos. Este lo quiero pasar a POSTGRES pero en funciones.
• Este es el procedimiento en MSQL: CREATE PROCEDURE `USP_Buscador` (op tinyint, Cad1 varchar(100),Cad2 varchar(100),Cad3 varchar(100), Cad4 varchar(150)) BEGIN DECLARE consultar varchar(500); Case op When 1 then SET @consultar=CONCAT('SELECT * FROM ',Cad1,' WHERE Estado=0 AND ',Cad2,' LIKE '%',Cad3,'%' LIMIT 200'); End case; PREPARE consultar FROM @consultar; EXECUTE consultar; End
• Ahora lo implemento en Postgres así, pero no se que poner en el return: CREATE OR REPLACE FUNCTION USP_Buscador(op integer, Cad1 varchar(100),Cad2 varchar(100),Cad3 varchar(100),Cad4 varchar(150))
RETURNS Buscador AS $BODY$ DECLARE consultar varchar(500); BEGIN case op when 1 then SET @consultar=CONCAT('SELECT * FROM ',Cad1,' WHERE Estado=0 AND ',Cad2,' ILIKE '%',Cad3,'%' LIMIT 200');
end case; PREPARE consultar FROM @consultar; EXECUTE consultar; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100 ROWS 1000; ALTER FUNCTION USP_Buscador(integer, varchar(100), varchar(100), varchar(100), varchar(150)) OWNER TO postgres;
• Si ejecuto así en postgres me da un mensaje: Creo porque no hay una tabla así o no se pero en MSQL no me da problemas.