ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Maves <Nathan.Ma...@Sun.COM>
Subject Re: ClobTypeHandlerCallback For Oracle 9i
Date Fri, 11 Feb 2005 00:31:51 GMT
We use the default BLOB handlers with oracle 9i.  the 4k issue can be  
solved by downloading the newest jdbc driver from Oracle.

Since there is no need to write your own CTH the other questions are  
not answered :)

Nathan

On Feb 9, 2005, at 10:42 AM, Peter Nunn wrote:

> I've been trying (for a while now) to implement a TypeHandlerCallback  
> that can WRITE clobs under Oracle 9i. It appears that this isn't  
> possible. If anyone has a solution to this then I'd be grateful for  
> your assistance. Up to now I haven't seen a workable solution.
>
> So far I have tried the following:
>
> 1) Call setter.setString(s).
>
> This fails because setString(x) has an upper limit of 4K.
>
> 2) Call setter.setCharacterStream(reader, s.length()). i.e. use same  
> approach as 2.0.9 ClobTypeHandlerCallback implementation.
>
> This doesn't work either.
>
> 3) Attempt to work with Oracle extension, namely oracle.sql.CLOB. The  
> preferred solution.
>
> This isn't possible because you cannot create an instance of  
> oracle.sql.CLOB directly. You need to either:
>
> a) create a temporary CLOB via a call to CLOB.createTemporary(...).  
> This requires a Connection object. Since ParameterSetter doesn't  
> expose the PreparedStatement we cannot get hold of the Connection  
> object. So this approach is a non-starter. Even if we did have the  
> connection things aren't straightforward because we need an  
> OracleConnection... which you won't have if you are using a DataSource  
> to obtain your connections.
>
> b) execute a SELECT statement to obtain a ResultSet then obtain the  
> CLOB instance by calling ResultSet.getClob("field"). This clearly  
> isn't an option from within a TypeHandlerCallback.
>
>
> I'd really appreciate some help here... I've hit a brick wall. As of  
> now I've come to the conclusion that iBatis cannot handle CLOBS in  
> Oracle prior to 10g. This is clearly an issue.
>
> So the only remaining option is to write a JDBC Dao implementation and  
> bypass SQLMAPS...any improvements upon this?
>
> Peter Nunn
> Senior Java Developer
> EMAP UK IT
> Telephone: 020 7017 3601
> Mobile: 07866 670 530
>
>
>
> ** For Emap magazine subscriptions & gift offers visit  
> http://www.greatmagazines.co.uk/emap **
>
> ----------------------------------------------------------------------- 
> ---------------------------------------
> The information in this email is intended only for the addressee(s)  
> named above.  Access to this email by anyone else is unauthorised.
>
> If you are not the intended recipient of this message any disclosure,  
> copying, distribution or any action taken in reliance on it is  
> prohibited and may be unlawful.
>
> Emap plc and or its subsidiaries do not warrant that any attachments  
> are free from viruses or other defects and accept no liability for any  
> losses resulting from infected email transmissions.
>
> Please note that any views expressed in this email may be those of the  
> originator and do not necessarily reflect those of this organisation.
> ----------------------------------------------------------------------- 
> ---------------------------------------
>


Mime
View raw message