Avatar billede olagerding Nybegynder
21. oktober 2003 - 12:19 Der er 5 kommentarer og
1 løsning

Problems with insert data into a CLOB column in Oracle

I want to insert data (which is kept in a Reader variable) into a CLOB column in Oracle 9i database but it does not work. When I for example try with the code written below a row is created in the table and the column ID (just a NUMBER column) gets its value but the CLOB column remains empty (and I know there is a value in the Reader variable). Which is the best way to solve this (answers both in Danish and English is OK)??


  public void executeInsertClob(Reader inReader)
  {
  try {
      CallableStatement cs = null;
      con.setAutoCommit(false);
      // Call Stored DB procedure for updating clob column
      cs = (CallableStatement)
      con.prepareCall( "begin INSERT INTO TEST (XML,ID) VALUES (?,?); end;" );
      // use setCharacterStream to set the clob parameter.
      cs.setCharacterStream(1,inReader,6000);
      int id=99;
      cs.setInt(2,id );
      cs.execute();
      con.setAutoCommit(true);
    }catch(SQLException sqlEx)
    {
      sqlEx.printStackTrace();
      log = new Log();
      log.setLogMessage(sqlEx.getMessage());
      log.writeLogFile();
    }
 
  }
Avatar billede arne_v Ekspert
21. oktober 2003 - 12:40 #1
Spørgsmål: hvorfor bruger du CallableStatement ?

Det er da ikke en stored procedure kald men en almindelig SQL sætning
d.v.s. at PreparedStatement burde være OK.
Avatar billede arne_v Ekspert
21. oktober 2003 - 12:48 #2
http://www.onjava.com/pub/a/onjava/2001/12/19/oraclejdbc.html?page=last

citat:

"nor does it support the use of setCharacterStream() to set a CLOB's value"

så medmindre det er fixet, så er det nok forklaringen.
Avatar billede arne_v Ekspert
21. oktober 2003 - 12:49 #3
Mit forslag:

lav en oracle.sql.CLOB og brug setClob
Avatar billede arne_v Ekspert
21. oktober 2003 - 12:56 #4
Avatar billede olagerding Nybegynder
22. oktober 2003 - 10:20 #6
After some adjustment of the examples it now works! Thanks!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester