wood burning stoves 2.0
The moose likes JDBC and Relational Databases and the fly likes oracle.jdbc.driver.OracleCallableStatement is not public in OJDBC5.jar Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "oracle.jdbc.driver.OracleCallableStatement is not public in OJDBC5.jar" Watch "oracle.jdbc.driver.OracleCallableStatement is not public in OJDBC5.jar" New topic

oracle.jdbc.driver.OracleCallableStatement is not public in OJDBC5.jar

Sharat Sathyanarayan

Joined: Dec 13, 2011
Posts: 1
Hi All,

In my application I am using ojdbc14.jar, but application is running on Java 1.5 (Batch) and Java 1.6 (web). I tried to migrate to ojdbc5.jar which is recommended for java 1.5 and Oracle 11g.

Here is the code which I am using

import oracle.jdbc.driver.OracleCallableStatement

cstmt = (OracleCallableStatement)conn.prepareCall("begin zzzzzzzzz(?,?,?,?,?,?); end;");
String[] pmsgs = (String[])(cstmt.getARRAY(6).getArray());

When I used ojdbc5.jar
import oracle.jdbc.driver.OracleCallableStatement was not visible as it is not public in the ojdbc5.jar. Instead when I tried
import oracle.jdbc.OracleCallableStatement and
String[] pmsgs = (String[])(cstmt.getArray(6));

it worked.

I have 2 questions.

1. Instead of import oracle.jdbc.driver.OracleCallableStatement can i use import oracle.jdbc.OracleCallableStatement in my code.
2. Or if the above statement is wrong which class can be used instead of import oracle.jdbc.driver.OracleCallableStatement in ojdbc5.jar

Avi Abrami
Ranch Hand

Joined: Oct 11, 2000
Posts: 1141

As far as I am aware, oracle.jdbc.driver package is deprecated, hence you should not use it in your code.
I'm only going from memory and I haven't verified it, but I believe you can safely use method getArray of interface java.sql.CallableStatement instead of method getARRAY of interface oracle.jdbc.OracleCallableStatement.

Good Luck,
Martin Vajsar

Joined: Aug 22, 2010
Posts: 3733

To expand on this: Oracle has defined interfaces substituting the driver's classes in package oracle.jdbc. Interface oracle.jdbc.OracleCallableStatement still does have the method getARRAY. If you want to minimize changes to the code, you probably could use this interface instead of the implementation from the oracle.jdbc.driver package.
I agree. Here's the link: http://aspose.com/file-tools
subject: oracle.jdbc.driver.OracleCallableStatement is not public in OJDBC5.jar
It's not a secret anymore!