Ciao a tutti,
ho il seguente codice java che invoca una procedura plsql su un db oracle:
public int getUtenti(String Cognome,String Nome)
{
CallableStatement proc = null;
try
{

Connessione connessione = new Connessione();
Connection conn = connessione.getJNDIConnection();

if (conn != null )
{
proc = conn.prepareCall("{call package.procedura1(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");

//Cursore di output
proc.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);

//Passaggio dei parametri in input
proc.setInt(2,1);
proc.setInt(3,500000);
proc.setString(4,null);
proc.setString(5,Cognome);
proc.setString(6,Nome);
proc.setString(7,null);
proc.setString(8,null);
proc.setString(9,"ENABLED");
proc.setString(10,null);
proc.setString(11,null);
proc.setString(12,null);

//Esecuzione della procedura
proc.execute();

//Get del cursore ottenuto
ResultSet cursor = ((OracleCallableStatement) proc).getCursor(1);

//Chisura del cursore
cursor.close();

//Chisura dello statement
proc.close();
}
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}

La procedura pl sql è la seguente:
PROCEDURE procedura1 (outcur OUT mycursore,
par2 IN INTEGER := 2,
par3 IN INTEGER := 10,
par4 IN VARCHAR2 := NULL,
par5 IN VARCHAR2 := NULL,
par6 VARCHAR2 := NULL,
par7 VARCHAR2 := NULL,
par8 VARCHAR2 := NULL,
par9 VARCHAR2 := NULL,
par10 VARCHAR2 := NULL,
par11 VARCHAR2 := NULL,
par12 VARCHAR2 := NULL) IS
begin
procedura2 (outcur, par2 , par3 , par4 , par5 , par6 , par7 , par8 , par9 , par10 , par11, PAR12, CUSTOM_TYPE);
end;

dove my_cursore e custom_type sono due tipi custom.
Quando da java eseguo lo statement con proc.execute();
ottengo il seguente errore:
ORA-17041=Parametro IN o OUT mancante nell'indice

Mi dite dove sbaglio?
Grazie