• Domingo 22 de Diciembre de 2024, 13:47

Autor Tema:  Acceso A Funciones Almacenadas En Oracle Dsde Java  (Leído 3200 veces)

mabrev

  • Miembro MUY activo
  • ***
  • Mensajes: 126
    • Ver Perfil
Acceso A Funciones Almacenadas En Oracle Dsde Java
« en: Miércoles 6 de Abril de 2005, 13:44 »
0
Hola:

   Estoy usando el JDeveloper 10g para acceder a una función almacenada en una base de datos oracle. El problema es que no puedo conseguir el resultado de la función para utilizarlo en java.

Tengo una función muy simple para probar el acceso, que es la siguiente:

Código: Text
  1.  
  2. CREATE OR REPLACE FUNCTION F_PRUEBA (provincia IN NVARCHAR2, codigo IN NUMBER)
  3. RETURN NUMBER IS
  4. prueba NUMBER;
  5. BEGIN
  6.    prueba := 0;
  7.    RETURN prueba;
  8. END F_PRUEBA;
  9. /
  10.  
  11.  

Llamada a la función desde java:
Código: Text
  1.  
  2.      cstmt = con.prepareCall("{call F_PRUEBA(? ?)}");
  3.      cstmt.setString(1, provincia);
  4.      cstmt.setInt(2, codigo);
  5.      cstmt.registerOutParameter(1, Types.INTEGER);
  6.      int n = cstmt.getInt(1);
  7.  
  8.  

Error:

Código: Text
  1.  
  2. java.sql.SQLException: ORA-06550: línea 1, columna 38:PLS-00103: Se ha encontrado el símbolo "" cuando se esperaba uno de los siguientes:   . ( ) , * @ % & | = - + < / > at in is mod not range rem =>   .. <an exponent (**)> <> or != or ~= >= <= <> and or like as   between from using || indicator
  3.   at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
  4.   at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:242)
  5.   at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:554)
  6.  
  7.  
  8.  

Pdría decirme alguien que es lo que está fallando.

Muchas gracias.

krusen

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Acceso A Funciones Almacenadas En Oracle Dsde Java
« Respuesta #1 en: Martes 19 de Abril de 2005, 12:28 »
0
Creo que se te ha colado el cstmt.executeUpdate(); delante del cstmt.getInt(1);


Suerte