RE: Ayuda con llamada a funcion

From: Ramón Alberto Bruening González <albertobruening(at)hotmail(dot)com>
To: <nachxs(at)gmail(dot)com>, postgresayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Ayuda con llamada a funcion
Date: 2007-11-26 02:50:49
Message-ID: BLU106-W18E6E0B03C558D121CF70A2750@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


> Subject: [pgsql-es-ayuda] Ayuda con llamada a funcion> From: nachxs(at)gmail(dot)com> To: pgsql-es-ayuda(at)postgresql(dot)org> Date: Sun, 25 Nov 2007 21:20:11 -0500> > Sres como estan, bueno recurriendo otra vez a Uds. por una consulta,> estoy trabajando con una aplicacion en Java y postgres, y se me esta> presentando un problema al llamas la funcion desde mi aplicacion java.> Esta es mi funcion:> > Create or Replace Function sp_inserta_evaluaciones (> codigo_evaluacion Char(5), > titulo Varchar(50),> tipo_evaluacion Varchar(100),> nombre_curso Varchar(100),> peso Numeric, > minimo Integer, > maximo Integer) Returns VARCHAR As $$> > Declare> codigo_tipoevaluacion Char(5);> codigo_curso Char(5);> fecha TimeStamp With Time Zone;> > Begin> fecha = current_date;> Select idtipoevaluacion into codigo_tipoevaluacion from tipoevaluacion Where desc_tipoevaluacion = tipo_evaluacion;> Select idcursos into codigo_curso from cursos Where descripcion = nombre_curso;> If codigo_tipoevaluacion is not NULL Then> If codigo_curso is not NULL Then> Insert Into evaluacion Values (codigo_evaluacion,codigo_tipoevaluacion, codigo_curso, titulo, fecha, peso, minimo, maximo);> Return "OK";> Else> Return "No el existe codigo de curso, para este nombre";> End If;> Else> Return "No el existe codigo de tipo de evaluacion, para este nombre";> End If;> > End;> $$ Language plpgsql;> > > el problema es cuando hago la llamada desde java, lo hago de la siguiente forma:> > try> { > con = Conexion.ConexionBD(); > call=con.prepareCall("{ ?=call sp_inserta_evaluaciones(?,?,?,?,?,?,?) }");> call.registerOutParameter(1,Types.VARCHAR);> call.setString(2,codigoEvaluacion);> call.setString(3,titulo);> call.setString(4,tipoEvaluacion);> call.setString(5,curso);> call.setFloat(6,peso);> call.setInt(7,notaMinima);> call.setInt(8,notaMaxima);> call.execute();> valorRetorno = call.getString(1);> return valorRetorno;> }> catch(Exception e){> return e.getMessage();> }> > cuando ejecuto el codigo me sale que la funcion no existe en la base de> datos. Aguna sugerencia??> > --> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán

Buenas noches:

Tendrias que ver los tipos de datos de tu funcion, debe coincidir con los tipos de datos que pasas desde tu aplicacion, porque x lo q he visto hasta ahora, la funcion hace referencia a los parametros por el tipo de dato y no por el nombre de los mismos.

Veo q en la parte del parametro de peso, definiste como numeric pero le estas pasando un float, fijate en los demas.

Espero haberte ayudado.
_________________________________________________________________
Explore the seven wonders of the world
http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message NachXs 2007-11-26 03:24:45 RE: Ayuda con llamada a funcion
Previous Message NachXs 2007-11-26 02:20:11 Ayuda con llamada a funcion