Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    3

    Errore Ora-01000 Numero Massimo Cursori Superato

    Ciao a tutti,
    ho creato un codice java che estrae informazioni da un file, dividendoli in colonne, da inserire poi in un database. Dopo l'esecuzione mi appare l'errore ORA-01000 numero massimo di cursori superato e ORA-00917 virgola mancante. L'ho controllato e ricontrollato migliaia di volte ma non riesco a trovare l'errore. Potete aiutarmi?
    La parte di codice dove avviene l'insert è questo:

    codice:
    Statement st = null; 
    ResultSet rs = null;
    
    
    String query = "INSERT INTO CCIAA_SCARICO (PROV, NREA, PROLOC, CODFISC, NRI, DTISREA, DTCAR, PRVSED, CODUBICS, COMUNES, DESCOM, LOCALS, CVIAS, DESVIAS, NCIVS, CAPS, CSTRADS, DTISRI, TABSEZR1_RISEZ, TABSEZR1_DATAINI, TABSEZR1_COLDIR, TABSEZR1_DATAFIN, TABSEZR2_RISEZ, TABSEZR2_DATAINI, TABSEZR2_COLDIR, TABSEZR2_DATAFIN, TABSEZR3_RISEZ, TABSEZR3_DATAINI, TABSEZR3_COLDIR, TABSEZR3_DATAFIN, RAGSOC, PIVA, NATGIU1, STADIT, CAPSOC, VALCAP, OGGSOC, OMOGGSO, CLIQ1, DTLIQ1, TIPOUL, TLOCUL, DENOM, INSEGNU, DTAPERU, STATOUL, PROVUL, CODCOM, DESCOMU, LOCALUL, CVIAUL, DESVIAU, NCIVUL, CAPUL, CSTRADU, TELEFNU, STAATTU, CAUCESS, DTCESS, DTDCESU, ANNOADD, NUMADDFAM, NUMADDSUB, CODATTISTATPRI, DESCATT, OMDESCA, TABRUOL1_S2RAL, TABRUOL1_S2FRU, TABRUOL1_NRRUL, TABRUOL1_DATAINI, TABRUOL1_DATAFIN, TABRUOL2_S2RAL, TABRUOL2_S2FRU, TABRUOL2_NRRUL, TABRUOL2_DATAINI, TABRUOL2_DATAFIN, TABRUOL3_S2RAL, TABRUOL3_S2FRU, TABRUOL3_NRRUL, TABRUOL3_DATAINI, TABRUOL3_DATAFIN, TABRUOL4_S2RAL, TABRUOL4_S2FRU, TABRUOL4_NRRUL, TABRUOL4_DATAINI, TABRUOL4_DATAFIN, TABRUOL5_S2RAL, TABRUOL5_S2FRU, TABRUOL5_NRRUL, TABRUOL5_DATAINI, TABRUOL5_DATAFIN, OMRUOL, TIPOMODIFICA, FILLER, VALIDO_DA, VALIDO_FINO_A) "+
    
    "VALUES ("+GestSql.nullValStr(prov)+
     ", "+GestSql.nullValInt(nrea)+
    ", "+GestSql.nullValInt(proloc)+
    ", "+GestSql.nullValStr(codfisc)+
    ", "+GestSql.nullValStr(nri)+
    ", "+GestSql.nullValDate(dtisrea)+
    ", "+GestSql.nullValDate(dtcar)+
    ", "+GestSql.nullValStr(prvsed)+
    ", "+GestSql.nullValStr(codubics)+
    ", "+GestSql.nullValStr(comunes)+
    ", "+GestSql.nullValStr(descom)+
    ", "+GestSql.nullValStr(locals)+
    ", "+GestSql.nullValStr(cvias)+
    ", "+GestSql.nullValStr(desvias)+
    ", "+GestSql.nullValStr(ncivs)+
    ", "+GestSql.nullValStr(caps)+
    ", "+GestSql.nullValStr(cstrads)+
    ", "+GestSql.nullValDate(dtisri)+
    ", "+GestSql.nullValStr(tabsezr1_risez)+
    ", "+GestSql.nullValDate(tabsezr1_dataini)+
    ", "+GestSql.nullValStr(tabsezr1_coldir)+
    ", "+GestSql.nullValDate(tabsezr1_datafin)+
    ", "+GestSql.nullValStr(tabsezr2_risez)+
    ", "+GestSql.nullValDate(tabsezr2_dataini)+
    ", "+GestSql.nullValStr(tabsezr2_coldir)+
    ", "+GestSql.nullValDate(tabsezr2_datafin)+
    ", "+GestSql.nullValStr(tabsezr3_risez)+
    ", "+GestSql.nullValDate(tabsezr3_dataini)+
    ", "+GestSql.nullValStr(tabsezr3_coldir)+
    ", "+GestSql.nullValDate(tabsezr3_datafin)+
    ", "+GestSql.nullValStr(ragsoc)+
    ", "+GestSql.nullValStr(piva)+
    ", "+GestSql.nullValStr(natgiu1)+
    ", "+GestSql.nullValInt(stadit)+
    ", "+GestSql.nullValStr(capsoc)+
    ", "+GestSql.nullValStr(valcap)+
    ", "+GestSql.nullValStr(oggsoc)+
    ", "+GestSql.nullValStr(omoggso)+
    ", "+GestSql.nullValStr(cliq1)+
    ", "+GestSql.nullValDate(dtliq1)+
    ", "+GestSql.nullValStr(tipoul)+
    ", "+GestSql.nullValStr(tlocul)+
    ", "+GestSql.nullValStr(denom)+
    ", "+GestSql.nullValStr(insegnu)+
    ", "+GestSql.nullValDate(dtaperu)+
    ", "+GestSql.nullValStr(statoul)+
    ", "+GestSql.nullValStr(provul)+
    ", "+GestSql.nullValStr(codcom)+
    ", "+GestSql.nullValStr(descomu)+
    ", "+GestSql.nullValStr(localul)+
    ", "+GestSql.nullValStr(cviaul)+
    ", "+GestSql.nullValStr(desviau)+
    ", "+GestSql.nullValStr(ncivul)+
    ", "+GestSql.nullValStr(capul)+
    ", "+GestSql.nullValStr(cstradu)+
    ", "+GestSql.nullValStr(telefnu)+
    ", "+GestSql.nullValInt(staattu)+
    ", "+GestSql.nullValStr(caucess)+
    ", "+GestSql.nullValDate(dtcess)+
    ", "+GestSql.nullValDate(dtdcesu)+
    ", "+GestSql.nullValInt(annoadd)+
    ", "+GestSql.nullValInt(numaddfam)+
    ", "+GestSql.nullValInt(numaddsub)+
    ", "+GestSql.nullValStr(codattistatpri)+
    ", "+GestSql.nullValStr(descatt)+
    ", "+GestSql.nullValInt(omdesca)+
    ", "+GestSql.nullValStr(tabruol1_s2ral)+
    ", "+GestSql.nullValStr(tabruol1_s2fru)+
    ", "+GestSql.nullValStr(tabruol1_nrrul)+
    ", "+GestSql.nullValDate(tabruol1_dataini)+
    ", "+GestSql.nullValDate(tabruol1_datafin)+
    ", "+GestSql.nullValStr(tabruol2_s2ral)+
    ", "+GestSql.nullValStr(tabruol2_s2fru)+
    ", "+GestSql.nullValStr(tabruol2_nrrul)+
    ", "+GestSql.nullValDate(tabruol2_dataini)+
    ", "+GestSql.nullValDate(tabruol2_datafin)+
    ", "+GestSql.nullValStr(tabruol3_s2ral)+
    ", "+GestSql.nullValStr(tabruol3_s2fru)+
    ", "+GestSql.nullValStr(tabruol3_nrrul)+
    ", "+GestSql.nullValDate(tabruol3_dataini)+
    ", "+GestSql.nullValDate(tabruol3_datafin)+
    ", "+GestSql.nullValStr(tabruol4_s2ral)+
    ", "+GestSql.nullValStr(tabruol4_s2fru)+
    ", "+GestSql.nullValStr(tabruol4_nrrul)+
    ", "+GestSql.nullValDate(tabruol4_dataini)+
    ", "+GestSql.nullValDate(tabruol4_datafin)+
    ", "+GestSql.nullValStr(tabruol5_s2ral)+
    ", "+GestSql.nullValStr(tabruol5_s2fru)+
    ", "+GestSql.nullValStr(tabruol5_nrrul)+
    ", "+GestSql.nullValDate(tabruol5_dataini)+
    ", "+GestSql.nullValDate(tabruol5_datafin)+
    ", "+GestSql.nullValInt(omruol)+
    ", "+GestSql.nullValStr(tipomodifica)+
    ", "+GestSql.nullValStr(filler)+
    ", "+GestSql.nullValDate(valido_da)+
    ", "+GestSql.nullValDate(valido_fino_a)+" )";
    
    try {
        st = conn.createStatement();
        rs = st.executeQuery(query);
    
    
        st.close();	
        rs.close();
    } catch (SQLException e) {
        System.out.println("ERRORE!!.. "+e.getMessage());
    } 
    
    
    s = fileBufereReader .readLine();
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ho sistemato i tag CODE, che non avevi messo e ho indentato in modo più umano (a livello di leggibilità del forum) il tuo codice; la prossima volta pensaci tu.

    Veniamo al problema:

    1) Cosa fa GestSql.nullValStr(...) ?
    Se ho capito bene restituisce una stringa controllando che non sia nulla... o qualcosa del genere. Bene: in SQL le stringhe devono essere delimitate da apice singolo (la maggior parte dei DBMS accetta anche le virgolette). Tu le racchiudi tra apici le stringhe? Nel codice che hai postato no... lo fa quel metodo? La domanda sembra non c'entrare... ma che succede se una delle stringhe contiene una virgola? Succede che l'SQL non è più in grado di distinguere ciò che è "valore" da ciò che è "separatore di campo".

    Fatte queste considerazioni, direi che potresti avvalerti delle PreparedStatement, soprattutto visto che hai così tanti campi da trattare: ti consentono un più agevole trattamento dei vari parametri della query, senza doverti sobbarcare l'onere di effettuare gli escape necessari e/o doverti preoccupare degli apici singoli/doppi delle stringhe.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.