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

    [JAVA] cast PreparedStatement a OraclePreparedStatement in WebSphere

    Ciao a tutti,
    nella mia applicazione sto utilizzando WebSphere. Ho bisogno di castare un PreparedStatement in un OraclePreparedStatement

    PreparedStatement ps = conn.prepareStatement(sql);
    OraclePreparedStatement ops = (OraclePreparedStatement) ps;
    ma l'applicazione lancia questa eccezione

    java.lang.ClassCastException: com/ibm/ws/rsadapter/jdbc/WSJdbcPreparedStatement incompatible with oracle/jdbc/OraclePreparedStatement
    perchè WebSphere fa il wrap automatico del PreparedStatement in un WSJdbcPreparedStatement. Il problema è che questa classe non è esposta.
    C'è modo di ricavarsi un PreparedStatement "puro" per poterlo poi castare all' OraclePreparedStatement?

    Grazie in anticipo


  2. #2
    ma scusa, se l'oggetto di partenza non è un OraclePreparedStatement mai lo potrà diventare.
    Se vuoi proprio quell'oggetto assicurati di avere i driver appropriati dentro la tua webapp e non fare affidamento su quelli del container...
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Devo dire sinceramente che non ho capito molto la tua risposta. Comunque spiego perchè mi serve un OraclePreparedStatement: sul db (che ovviamente è Oracle) praticamente tutti i campi sono CHAR (io ovviamente non ho potere sul db ) e quindi nella query i parametri che passo per questi campi CHAR devono essere della stessa dimensione con cui sono stati definiti sul db altrimenti non tira fuori niente. La classe OraclePreparedStatement mette a disposizione un metodo setFixedCHAR(int paramIndex, String val) che si preoccupa anche di fare il padding della stringa val. C'è da aggiungere che se eseguo la query secca normalmente Oracle si preoccupa di fare il padding, ma se uso i preparedstatement NO!
    Se c'è un altro modo più semplice accetto suggerimenti


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.