Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ORA-17041=Parametro IN o OUT mancante nell'indice

    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

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537

    Re: ORA-17041=Parametro IN o OUT mancante nell'indice

    Originariamente inviato da dreammozzo
    Mi dite dove sbaglio?
    Grazie
    A non leggere il regolamento per il post.
    Mancano i tag code.

    Scherzi a parte hai provato a Googlare per vedere che ti dice la doc ufficiale?
    Riporta l'errore in Google ed otterrai Questo
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Se non sbaglio il formato corretto per richiamare una procedura è:

    Codice PHP:
    CallableStatement stat conn.prepareCall("{ call ? := procedura(?) }");
    stat.registerOutParameter(1tipo);
    stat.setInt(2valore);
    stat.execute();
    System.out.println(stat.getInt(1)); 
    specificando nella chiamata un ? per l'oggetto ritornato
    Al mio segnale... scatenate l'inferno!

  4. #4
    Ciao,
    risolto grazie! Era errato il numero di parametri (troppi ?)...grazie mille!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.