Foros del Web » Programación para mayores de 30 ;) » Java »

error al ejecutar un stored procedure

Estas en el tema de error al ejecutar un stored procedure en el foro de Java en Foros del Web. que tal muchachos, tengo un problema con un procedimiento almacenado, estoy trabajando con jsp y postgres... aca pongo el codigo donde trato de ejecuarlo y ...
  #1 (permalink)  
Antiguo 07/08/2009, 13:16
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
error al ejecutar un stored procedure

que tal muchachos,

tengo un problema con un procedimiento almacenado, estoy trabajando con jsp y postgres... aca pongo el codigo donde trato de ejecuarlo y el error, para que lo chequen haber si me pueden ayudar un poco

Código:
CallableStatement proc = conn.prepareCall("{ ?=call agregarEtapa( ?,?,?,?,?,?,?,? )}");
		proc.setFloat(2,monto);
		proc.setString(3,observaciones);
		proc.setInt(4,p);
		proc.setString(5,nombre);
		proc.setDate(6,fch_inicio);
		proc.setDate(7,fch_termino);
		proc.setDate(8,fch_informe_tecnico);
		proc.setDate(9,fch_prorroga);
		
		proc.registerOutParameter( 1, Types.VARCHAR );		
		proc.execute();
		out.println("<h3 id='colora'><center>"+proc.getString(1)+"</center></h3>");
		proc.close();
		
		conexion.close(conn);
este es el error. ressalto ahi lo que no entiendo, por que me marca esos dos parametros de tipo desconocido si si los estoy estableciendo como tipo java.sql.Date

Código:
org.apache.jasper.JasperException: An exception occurred processing JSP page /Proyectos/menu/proyectos/iEtapa.jsp at line 81
78: 		proc.setDate(9,fch_prorroga);
79: 		
80: 		proc.registerOutParameter( 1, Types.VARCHAR );		
81: 		proc.execute();
82: 		out.println("<h3 id='colora'><center>"+proc.getString(1)+"</center></h3>");
83: 		proc.close();
84: 		

	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:554)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:413)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:319)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause

javax.servlet.ServletException: ERROR: function agregaretapa(double precision, character varying, integer, character varying, unknown, unknown, date, date) does not exist
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:854)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:783)
	org.apache.jsp.Proyectos.menu.proyectos.iEtapa_jsp._jspService(iEtapa_jsp.java:223)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:319)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
ahhh por cierto esos valores de fecha los obtengo asi

Código:
Date fch_inicio =Date.valueOf(request.getParameter("fch_inicio").toString());
ojala que alguien me pueda ayudar... saludos
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
  #2 (permalink)  
Antiguo 10/08/2009, 13:14
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: error al ejecutar un stored procedure

solucionado !!! aqui les pongo mi solucion, a lo mejor no sea lo mas optimo, pero me ha funcionado...

primero paso la fecha como varchar

Código:
CREATE OR REPLACE FUNCTION agregarEtapa(float,character varying,integer,character varying,character varying,character varying) RETURNS boolean AS $$
y despues la convierto a date

Código:
inicio date :=TO_DATE($5,'YYYY/MM/DD');
 termino date :=TO_DATE($6,'YYYY/MM/DD');
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
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:10.