Avatar billede jesperhalden Nybegynder
08. september 2003 - 16:58 Der er 7 kommentarer og
1 løsning

Java/Oracle CLOB i UFT-8 format

We have data in an Oracle CLOB column in UTF-8 format. We want to write this data into a text file by using a JAVA client and keep it in UTF-8 format. To write the data into the file is no problem but we loose the UTF-8 format. How should we do to keep the UTF-8 format? A code example to solve this would be great!


    OracleResultSet orabatchResult = dbFacade.executeFetchXML();
    while (orabatchResult.next()){
        oracle.sql.CLOB clb = orabatchResult.getCLOB(1);
       
        java.io.Reader reader = clb.getCharacterStream();

        FileWriter fw=new FileWriter("test.xml");       
        int tmp;
        while ( (tmp=reader.read()) != -1 )
        {
          // Write one character at a time to the file.
          fw.write( (char) tmp );
        }
        fw.close();
    }

Svar i dansk er fint
Avatar billede jakoba Nybegynder
08. september 2003 - 17:07 #1
brug byteStream istedet for characterStream. Så får du en eksakt kopi uden hensyn til dine lokale sprogindstillinger osv.
Avatar billede jesperhalden Nybegynder
08. september 2003 - 17:13 #2
Men problemet er at klassen oracle.sql.CLOB ikke har nogen metode for byteStream. Eller missforstår jeg dig?
Avatar billede arne_v Ekspert
08. september 2003 - 17:16 #3
Først skal du finde ud af om det er DB->app eller app->fil eller fil->X der
giver problemer.

Gem ÆØÅ og se hvor mange bytes det er i DB, app, fil og X !

Hvis det er UTF-8 så skal det være 6.
Avatar billede jesperhalden Nybegynder
08. september 2003 - 17:21 #4
Vi er helt sikre på at det er DBA->App. Findes der evt. en anden metode, da CharacterStream ikke fungerer?
Avatar billede arne_v Ekspert
08. september 2003 - 17:30 #5
Selvom i er helt sikre.

Har I prøvet:

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("test.xml"), "UTF-8");

og:

osw.write((char)tmp);

?
Avatar billede jesperhalden Nybegynder
08. september 2003 - 17:37 #6
Yes det virker - tusind
Avatar billede jesperhalden Nybegynder
08. september 2003 - 17:37 #7
tak!!
Avatar billede arne_v Ekspert
08. september 2003 - 17:39 #8
Hvad med point ?
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