Creation et manipulation de "clob" Oracle en JAVA [Résolu]

Creation et manipulation de "clob" Oracle en JAVA [Résolu] - Java - Programmation

Marsh Posté le 27-10-2003 à 17:48:43    

Salut a tous,
 
J'ai un probleme que je n'arrive vraiment pas a solutionner malgre mes recherches (pour le moment) . Dand mon code, j'essaye d'instancier un object CLOB dans lequel je placerai les donneés dont j'ai besoin
mais je me tape toujours l'erreur "ClassCastException":
 
java.sql.Connection con=this.getConnection();
 
oracle.sql.CLOB c;
c=CLOB.createTemporary(con,false,CLOB.DURATION_CALL);
<--- Ca merde là
 
Call stack:
java.lang.ClassCastException
at oracle.sql.CLOB.getDBAccess(CLOB.java:733)
at oracle.sql.CLOB.createTemporary(CLOB.java:527)
....
 
Any idea ?!


Message édité par bartleby le 28-10-2003 à 11:22:46
Reply

Marsh Posté le 27-10-2003 à 17:48:43   

Reply

Marsh Posté le 28-10-2003 à 09:50:20    

Voici ce qui me permet de créer un clob... (sous Oracle)
 
 
<%@ page import="java.sql.*,oracle.sql.CLOB"%>
String doc="blabla";
CLOB tempclob=null;
try
   {
 tempclob = CLOB.createTemporary(conn,true,CLOB.DURATION_SESSION);  
 tempclob.open(CLOB.MODE_READWRITE); //mode d'ouverture
 Writer tempClobWriter = tempclob.getCharacterOutputStream();
 tempClobWriter.write(doc.toCharArray());
 tempClobWriter.flush();
 tempClobWriter.close();
 tempclob.close();
                   
 PreparedStatement stmt = conn.prepareStatement("insert into ma_table values (?)" );
 stmt.setClob(1,tempclob);
 j=stmt.executeUpdate();
 stmt.close();
   
 }
 catch (Exception e){out.println(e);}
        finally {
          stmt.close();
         }

Reply

Marsh Posté le 28-10-2003 à 11:22:30    

Merci, c'est bien de cette façon là que je le créais. Et c'est precisement à la ligne :
"tempclob = CLOB.createTemporary(conn,true,CLOB.DURATION_SESSION);  "  
que je recevais un classcastException...
 
Le probleme est resolu; mon erreur a été de ne pas vérifier les parametres que l'on me passait ( la connection que je donnais à createTemporary, n'etait pas une connexion Oracle, mais un "Wrapper" qui relayait les appels de méthodes vers la "connexion réel".
 
Il faudrat que je regarde un peu comme fonctionne les 'casts' en Java, pour voir la difference entre l'implementation d'un interface et l'extension d'une classe....
 
Merci pour ton aide ;)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed