Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2011, 12:42
Avatar de dackiller
dackiller
 
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 21 años, 3 meses
Puntos: 4
Postgres (Array) + JDBC + Composite Types

Amigos, les escribo porque no hallo la forma de que esto me funcione:

Código Java:
Ver original
  1. public Application(){
  2.         String driver = "org.postgresql.Driver";
  3.         String connectString = "jdbc:postgresql://localhost:5432/application";
  4.        
  5.         try{
  6.                     DataBase db = DataBase.getInstance("user", "pass");                
  7.  
  8.  
  9.                     CallableStatement call = db.getCallableStatement("{ call prod(?,?,?,?,?,?,?,?,?,?,?,?,?,?) }");
  10.                     call.setInt(1, 100);
  11.                     call.setString(2, "PARAMETRO");
  12.                     call.setString(3, "STRING 3");
  13.                     call.setString(4, "String 4");
  14.                     call.setInt(5, 1);
  15.                     call.setInt(6, 100);
  16.                     call.setNull(7, Types.ARRAY);
  17.                     call.setNull(8, Types.ARRAY);
  18.                     call.setDouble(7, 1.0);
  19.                     call.setDouble(8, 2);
  20.                     call.setDouble(9, 3.3);
  21.                     call.setDouble(10, 4.4);
  22.                     call.setBoolean(11, true);
  23.                     call.setBoolean(12, true);
  24.                     call.setBoolean(13, true);
  25.                     call.setBoolean(14, true);
  26.                     call.execute();
  27.                     db.close();
  28.  
  29.                    
  30.                 }catch (SQLException e ){
  31.             e.printStackTrace();
  32.         }catch(InvocationTargetException e){
  33.             e.printStackTrace();
  34.         }catch(Exception e){
  35.             e.printStackTrace();
  36.         }

Código PgSQL:
Ver original
  1. CREATE OR REPLACE FUNCTION prod(integer, character varying, character varying, character varying, integer, integer, numeric, numeric, numeric, numeric, boolean, boolean, boolean, boolean)
  2.   RETURNS void AS
  3. $BODY$DECLARE
  4. BEGIN
  5.  
  6. END

Siempre me da error,
Código:
org.postgresql.util.PSQLException: ERROR: no existe la función prod(integer, character varying, character varying, character varying, integer, integer, double precision, double precision, double precision, double precision, boolean, boolean, boolean, boolean)
  Hint: Ninguna función coincide en el nombre y tipos de argumentos. Puede desear agregar conversión explícita de tipos.
  Position: 15
Efectivamente ya he revisado la cantidad de parametros y son 14...

Será problemas de permisos ?

Saludos...
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.