Oracle JDBC Drivers release 8.0.4.2.0 (Production) README

Versions

--------

- Oracle Servers:

- JDBC OCI: Oracle 8.0.4 and up

- JDBC Thin: Oracle 7.2.3 and up

- Oracle Clients:

- JDBC OCI: Oracle 8.0.4 and up

- JDBC Thin: no Oracle client software required

- JDK: 1.0.2 or 1.1.x.

- JDBC: 1.22

- For applets: Netscape 3.0 or 4.0

- Solaris: 2.5

- Win95/NT: Win95, NT 3.51 and NT 4.0.

Note: You need the Oracle 8.0.3.0.2 patch on Windows 95 or NT

if you are using JDBC Thin to connect to an Oracle 8.0.3 server.

Oracle clients can get it from Oracle World Wide Support.

Changes from previous Beta release

-------------------------------------

- JDBC Thin now supports NLS databases.

- Numerous bug fixes.

Installation

------------

To avoid potential confusion with the previous version of the JDBC

driver we highly recommend that you uninstall the alpha and/or beta-1

release(s) before installing this beta-2 release.

Please do not try to have multiple versions of our drivers in

your CLASSPATH.

Win95/NT with the Oracle Installer

- Use the Oracle Installer

- Add [ORACLE_HOME]\jdbc\lib\classes111.zip to your CLASSPATH

(If using JDK-1.0.2 add classes102.zip instead)

Solaris

- Use the Oracle Installer

- Add [ORACLE_HOME]/jdbc/lib/classes111.zip to your CLASSPATH

(If using JDK-1.0.2 add classes102.zip instead)

- Add [ORACLE_HOME]/jdbc/lib to your LD_LIBRARY_PATH

Contents of this release

------------------------

The "lib" directory contains:

- classes111.zip: classes for use with the JDK 1.1.1. Contains

all the JDBC driver classes.

- classes102.zip: classes for use with the JDK 1.0.2. Contains

all the JDBC driver classes and the JDBC 1.22 classes are they

are not a standard part of the JDK 1.0.2 distribution.

- oci803jdbc.dll (liboci803jdbc.so on Solaris): the shared library

used by the JDBC OCI8 driver. On Win95/NT the library is moved

to the [ORACLE_HOME]\bin directory.


The "samples" directory contains sample programs.



Usage (See special case for JDBC Thin 1.0.2 at the end)

-------------------------------------------------------

You must import the JDBC classes in your programs that use JDBC.

import java.sql.*;

import java.math.*;

Your JDBC program must register the Oracle driver before being able to use it.

To do that, include the following line at the beginning of your

"main":

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ());

You open a connection to the database with the getConnection call.

The connection URL depend on the JDBC driver you want to use:

JDBC OCI8:

Connection conn =

DriverManager.getConnection ("jdbc:oracle:oci8:@<database>",

"scott", "tiger");

<database> is either an entry in tnsnames.ora or a SQL*net

name-value pair.

JDBC Thin:

Connection conn =

DriverManager.getConnection ("jdbc:oracle:thin:@<database>",

"scott", "tiger");

<database> is either a string of the form <host>:<port>:<sid>

or a SQL*net name-value pair.


Special case for the JDBC Thin 1.0.2

-------------------------------------

For the JDBC Thin 1.0.2 the imports, class name and URL are

different.

Imports:

import jdbc.sql.*;

import java.math.*;

Registering the driver:

DriverManager.registerDriver (new oracle.jdbc.dnlddriver.OracleDriver ());

JDBC Thin 1.0.2 URL:

Connection conn =

DriverManager.getConnection ("jdbc:oracle:dnldthin:@<database>",

"scott", "tiger");

<database> is either a string of the form <host>:<port>:<sid>

or a SQL*net name-value pair.


Known Problems

--------------

JDBC OCI8 only:

A multi-threaded program may hang after a few thousand updates. (574762)

The largest chunk that can be read from a BLOB is 255. The largest

chunk that can be read from a CLOB is 2000. The largest chunk that

can be written to a BLOB or CLOB is 32512. (571297)

With AutoCommit off, changes made to a LOB are not immediately visible.

(572206)

When OCI8 driver table name cannot contains more than 10 NLS characters.

Otherwise expect the following behavior:

During insertion of the table receive ORA-00972: identifier is too long

(557107)

When JDBC OCI8 driver is connected to a JA16EUC database, cannot retrieve

metadata of NLS column using JDBC DatabaseMetaData. NLS object includes

table columns and procedure columns (587393)

JDBC Thin only:

When multiple threads update the same program, after thousands of

iterations the exception "No more data to read from socket" may be

thrown. (574088)

When a function returns a CHAR, the CHAR is blank-padded to a length

of 256. (562962)

When JDBC thin driver is used, unable to retrieve meta data of NLS object

using JDBC DatabaseMetaData in JA16EUC database. NLS object includes

table names, table columns, procedure names and procedure columns

Workaround:

select from user_tables or the JDBC ResultSet.getColumnName

(587386)

When thin driver is connected to a JA16EUC database, functions with CHAR as

return type always returns the expected data plus extra space padding (to

make it total of 764 bytes) (587406)

JDBC Thin and OCI8:

When multiple threads share the same connection object, and repeatedly

issue the same SELECT statement, the SQLException "ORA-00900: invalid

SQL statement" may be raised. (574026)

Creating dates that fall on a Sunday causes invalid data to be inserted.

(453354)

For non-ascii and non-ISO database, NLS_LANG has to be set to UTF8 if OCI8

driver is used. Otherwise, expect the following behavior:

*if Client and Server are on different machines,

receive SQLException of "Fail to convert between UTF8 and UCS2"

*if Client and Server are on same machine,

receive "ORA-12705: invalid or unknown NLS parameter value specified"

This is a Japanese NT specific problem.

(556653)