Cheers, heh what a pain in the backside!!

Shouldn't these things be transparent to the user and hidden inside Oracle,
or am I just being a whining user...

Well, off to hack all my BMP's with setAutoCommit( false ), and fancy,
fancy, set it to empty, load it back in, and write to a steam stuff...

Ho Hum!!

Thanks SO much for the quick response!!!

You may have just saved my girlfriend her Christmas Present ;-)

Hee hee,

Tim.

> Take a look at the 8i App developer's guide for Large Objects & Java.
Something
> like this might work  . . . (although you are using CLOB type, not BLOB).
It
> also might be that you are using a LONG type, not a CLOB type (don't use
LONG!).
>
> -- Tim
>
> // Create a Statement:
> Statement stmt = conn.createStatement ();
> try
> {
> ResultSet rset = stmt.executeQuery (
> "SELECT sound FROM multimedia_tab WHERE clip_id = 1");
> if (rset.next())
> {
> // retrieve the LOB locator from the ResultSet
> BLOB sound_blob = ((OracleResultSet)rset).getBLOB (1);
> OraclePreparedStatement ops =
> (OraclePreparedStatement) conn.prepareStatement(
> "INSERT INTO multimedia_tab (clip_id, sound) VALUES (2, ?)");
> ops.setBlob(1, sound_blob);
> ops.execute();
> conn.commit();
> conn.close();
> }
> }
>
> Tim Yates wrote:
>
> > Hiya!
> >
> > My Entity beans (BMP) have to write XML data into a CLOB field in an
oracle
> > database, but when I try to set it to a load of XML which is longer than
> > 4000 characters, I get the following exception:
> >
> > javax.ejb.EJBException: Error executing SQL INSERT INTO CONTENT
(DOCUMENTID,
> > STARTDATE, ENDDATE, DEPARTMENT, TYPE, XML, SUBTYPE) VALUES ( ?, ?, ?, ?,
?,
> > ?): java.sql.SQLException: ORA-01461: can bind a LONG value only for
insert
> > into a LONG column
> >
> > I am using classes12.zip for my drivers, and I am using the thin oracle
> > driver...
> >
> > Pleeeeease has anyone else hit upon this, and can they help?  This is a
> > complete showstopper!!  I cannot believe there is a 4000 char limit on
CLOBS
> > in Oracle 8i, else why use them?  I might as well use a varchar2...
> >
> > I think tonight is the night I painfully remove all my hair ;-)
> >
> > Tim...
> >
> > PS:  I write my clobs like this (in the BMP bit of the entity bean)
> >
> >       statement = connection.prepareStatement("INSERT INTO CONTENT
> > (DOCUMENTID, STARTDATE, ENDDATE, DEPARTMENT, TYPE, XML, SUBTYPE) VALUES
(?,
> > ?, ?, ?, ?, ?, ?)");
> >       statement.setString(1, documentid);
> >       statement.setTimestamp(2, startdate);
> >       statement.setTimestamp(3, enddate);
> >       statement.setString(4, department);
> >       statement.setString(5, type);
> >       statement.setAsciiStream( 6, new ByteArrayInputStream(
> > xml.getBytes() ), xml.length() ) ;
> >       statement.setString(7, subtype);
> >       if (statement.executeUpdate() != 1)
> >       {
> >         throw new CreateException("Error adding row");
> >       }
> >
> > with xml being a java.lang.String...
> >
> > --
> > --------------------------------------------------------------
> > To subscribe:        [EMAIL PROTECTED]
> > To unsubscribe:      [EMAIL PROTECTED]
> > List Help?:          [EMAIL PROTECTED]
>
>
>
>
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> List Help?:          [EMAIL PROTECTED]
>
>



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to