RE: Ayuda con llamada a funcion

From: NachXs <nachxs(at)gmail(dot)com>
To: Ramón Alberto Bruening González <albertobruening(at)hotmail(dot)com>
Cc: postgresayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Ayuda con llamada a funcion
Date: 2007-11-26 03:24:45
Message-ID: 1196047486.6639.13.camel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Ramon, aparentemente el problema era por el campo numeric, lo
cambie a float y bueno ya no aparece ese error, la verdad se me paso.
Bueno el detalle es que ahora me aparece otro error me muestra que no
existe la columna "OK". Si te fijas en la funcion tengo varios retornos
y en uno de ellos pongo return "OK", dime esta bien definido esto??

Gracias por la respuesta.

El lun, 26-11-2007 a las 02:50 +0000, Ramón Alberto Bruening González
escribió:
>
>
> > 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 Learn more!

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jlcambero 2007-11-26 09:27:12 Re: Ayuda con llamada a funcion
Previous Message Ramón Alberto Bruening González 2007-11-26 02:50:49 RE: Ayuda con llamada a funcion