Tengo este Procedimiento Almacenado, que al crearlo se crea sin problemas:
Código:
CREATE OR REPLACE FUNCTION pdameusuario(pnum_identidad bpchar, pclave bpchar) RETURNS SETOF refcursor AS $BODY$ DECLARE curCursor refcursor; BEGIN --ACCEDIO POR CERTIFICADO IF pclave='' THEN OPEN curCursor FOR SELECT cod_usuario, num_identidad, clave, nombre, apellido_1, apellido_2, calle, email, TUSUARIOS.cod_pais, TPAISES.PAIS, TUSUARIOS.cod_provincia, TPROVINCIAS.provincia, ciudad, codigo_postal, fec_alta, foto, notificar_email, estrellas, cuenta_activa FROM tusuarios INNER JOIN TPAISES ON TPAISES.COD_PAIS = TUSUARIOS.COD_PAIS INNER JOIN TPROVINCIAS ON TPROVINCIAS.COD_PROVINCIA = TUSUARIOS.COD_PROVINCIA WHERE NUM_IDENTIDAD = pnum_identidad; RETURN NEXT curCursor; END IF; --ACCEDIO NORMAL IF pnum_identidad<>'' and pclave<>'' THEN OPEN curCursor FOR SELECT cod_usuario, num_identidad, clave, nombre, apellido_1, apellido_2, calle, email, TUSUARIOS.cod_pais, TPAISES.PAIS, TUSUARIOS.cod_provincia, TPROVINCIAS.provincia, ciudad, codigo_postal, fec_alta, foto, notificar_email, estrellas, cuenta_activa FROM tusuarios INNER JOIN TPAISES ON TPAISES.COD_PAIS = TUSUARIOS.COD_PAIS INNER JOIN TPROVINCIAS ON TPROVINCIAS.COD_PROVINCIA = TUSUARIOS.COD_PROVINCIA WHERE NUM_IDENTIDAD = pnum_identidad AND CLAVE =pclave; RETURN NEXT curCursor; END IF; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
Pregunta, ¿Como debo llamarlo para comprobar que me funciona y me devuelve datos?
Cuando lo ejecuto me sale el siguiente resultado: "<unnamed portal 1>"