Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Writing Clobs with the thin driver

Re: Writing Clobs with the thin driver

From: Davide Semprini <d.semprini_at_webconsulting.it>
Date: Fri, 12 Nov 2004 10:39:56 +0100
Message-ID: <2vjedmF2ikabrU1@uni-berlin.de>


I agree to you, but is the only one method that works ... (I have re-tested this code before give to you).

Best Regards

D.

"Cookie Monster" <cookie.monster_at_somewhere.com> ha scritto nel messaggio news:2vhqq0F2lvui2U1_at_uni-berlin.de...
> Hi,
>
> Thanks a lot. It's not nice but if it works it will do.
>
> Cheers,
> Steve
>
> "Davide Semprini" <d.semprini_at_webconsulting.it> wrote in message
> news:2vhc8hF2kg8nqU1_at_uni-berlin.de...
> > Hi,
> >
> > you can do this first updating the clob field with the Oracle function
> > EMPTY_CLOB()
> > and then re-query the row. When you read the content of clob field with
> > resultset.getClob("FILED_CLOB_NAME") you obtain a pointer to a oracle
clob
> > area
> > and the you can write it.
> >
> > I give you the code fragment (ASSUME THAT YOU HAVE A TABLE CALLED
CLOBTEST
> > WITH
> > TWO FIELD FRST (NUMBER), SEC CLOB)
> >
> > PreparedStatement ps = con.prepareStatement("UPDATE CLOBTEST =
> > EMPTY_CLOB() WHERE FRST =1");
> > ps.executeUpdate();
> > ps.close();
> > ps = null;
> >
> > // Recupero della riga inserita per aggiornamento del BLOB
> > Statement stmt = con.createStatement();
> > ResultSet curr_RecordSet = stmt.executeQuery("SELECT sec FROM
clobtest
> > WHERE frst = 1 FOR UPDATE");
> > if( curr_RecordSet.next() ) {
> > // Creazione BLOB vuoto ottenuto da EMPTY_BLOB()
> > Clob a_blb = curr_RecordSet.getClob(1);
> > // Puntatore all'area di memoria Oracle di salvataggio del
BLOB
> > OutputStream clobOutputStream =
> > ((oracle.sql.CLOB)a_blb).getAsciiOutputStream();
> > // Scrittura del BLOB nell'area di memoria Oracle
> > clobOutputStream.write("PUT YOUR TEXT HERE!".getBytes());
> > clobOutputStream.close();
> >
> > }else{
> > throw new SQLException("Errore recupero record TEST");
> > }
> >
> >
> > Best Regards
> >
> > D.
> >
> > "Cookie Monster" <cookie.monster_at_somewhere.com> ha scritto nel messaggio
> > news:2vh3g4F2kmf5sU1_at_uni-berlin.de...
> > > Hi,
> > >
> > > I have a problem with the oracle thin driver writing clobs greater
then
> > 4000
> > > chars. Basically using the oci driver the following java code works
> fine:
> > >
> > > PreparedStatement statement;
> > > Reader bodyReader = null;
> > > try {
> > > bodyReader = new StringReader(parameter.toString());
> > >
> >

statement.setCharacterStream(1,bodyReader,parameter.toString().length());
> > > } catch (Exception e) {
> > > e.printStackTrace();
> > > throw new SQLException("Failed to set text field.");
> > > }
> > >
> > > But when using with the thin driver nothing gettings written to the
> clob.
> > > Does anyone know a solution to this problem where I can use the thin
> > driver
> > > for writing clobs??
> > >
> > > Thanks,
> > > Steve.
> > >
> > >
> >
> >
>
>
Received on Fri Nov 12 2004 - 03:39:56 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US