aspose file tools*
The moose likes JDBC and the fly likes Clobs, Stored procedures and Oracle 8i Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Clobs, Stored procedures and Oracle 8i" Watch "Clobs, Stored procedures and Oracle 8i" New topic
Author

Clobs, Stored procedures and Oracle 8i

J Rosetto
Greenhorn

Joined: Jun 03, 2008
Posts: 21
I have a stored procedure which takes in a Clob as one of IN arguments:

e.g.
PROCEDURE clob_processor(p_c_frag IN CLOB)

I can run the following code against an Oracle 10g database with no problems:

Connection connection = DatabaseHandler.getInstance().getConnection();
CallableStatement statement = connection.prepareCall("call TEST.CLOB_PROCESSOR.clob_processor (?)");
statement.setString("my clob string");
statement.execute;

However, when I run this same code on Oracle 8i I get the following error:

Exception in thread "main" java.sql.SQLException: ORA-06553: P LS-306: wrong number or types of arguments in call to 'CLOB_PROCESSOR'

Unfortunately I cannot find any way to create a CLOB object to encapsulate my String. There are a couple of createTemporary() methods which can do this, but unfortunately they don't seem to work, as I am using an Apache DBCP connection wrapper.

Does anyone know any other way of generating clobs, or obtaining the wrapped connection from within a DBCP wrapper?
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31069
    
232

I've never used setString() with a CLOB. I've also never created an actual CLOB. Instead I use setAsciiStream() on the prepared statement.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Clobs, Stored procedures and Oracle 8i