Oracle JDBC Drivers release 8i README

This release contains:
- Support for Oracle 8 Objects, LOB, and FILE types in all
our drivers.
- Support for accessing efficient data access in SQL format
via the oracle.sql package


Versions:
--------

- JDBC OCI 8i: Client side JDBC for use on a machine where
OCI 8i is installed.
- JDBC Thin 8i: Client side JDBC for use in an applet .
- JDBC KPRB 8i: Server side JDBC for use by Java Stored
procedures or by Java CORBA objects running in Oracle 8i.


Please refer to the documentation for Oracle's JDBC Drivers for
complete information.


Contents of this release
------------------------

[ORACLE_HOME]/jdbc/lib directory contains:
- classes111.zip: classes for use with the JDK 1.1.1. Contains
all the JDBC driver classes except classes necessary for NLS
support.
- nls_charset11.zip: classes necessary for NLS support with the
JDK 1.1.x.
- classes102.zip: classes for use with the JDK 1.0.2. Contains
all the JDBC driver classes and the JDBC 1.22 classes as they
are not a standard part of the JDK 1.0.2 distribution.
- nls_charset10.zip: classes necessary for NLS support with the
JDK 1.0.2.

Please note that the addition of the 2 zip files nls_charset10.zip and
nls_charset11.zip is new with this release. The classes pertaining to NLS
support for specific character sets have been separated out from the
generic classes in order to provide users the flexibility of excluding
them in scenarios where complete NLS support is not a requirement.
Please refer to the following section "JDBC and NLS Support and
Object Types" for further details.


[ORACLE_HOME]/lib directory contains:
- libocijdbc8.so (on Solaris): the shared library
used by the JDBC OCI8 driver.

[ORACLE_HOME]/jdbc/doc/doc.tar contains JDBC JavaDoc.

This release contains a beta release of the JavaDoc files for the public
API of the public classes of Oracle JDBC.

[ORACLE_HOME]/jdbc/demo/demo.tar contains sample JDBC programs.

[ORACLE_HOME]/javavm/demo/demo.zip contains sample server side JDBC
programs as well as examples for callins. We also provide examples
of how to write Oracle 8 Object instance methods in Java.


Changes in our distribution -- Jdbc NLS Support and Object Types:
----------------------------------------------------------------


Two new zip files were added to the Jdbc distribution:
nls_charset10.zip and nls_charset11.zip for JDK 1.0 and
JDK 1.1 respectively.

These 2 files are necessary to support all Oracle characters sets
for char/varchar data in Object Types and Collections.
This affects our client side drivers only: JDBC-OCI
and JDBC-Thin.

The basic Jdbc zip files, classes102.zip and classes111.zip
contain all the necessary classes to provide complete NLS support
for all Oracle Character sets for char/varchar/longvarchar/clob type
data that is not retrieved or inserted as part of an Oracle 8 Object
or Collection type.

The server-side driver only supports US7ASCII and ISO-LATIN-1
and does not require or use the above mentioned zip files.


The basic JDBC zip files also provide NLS support for char/varchar data
part of Objects and Collections for a few commonly used character sets

US7ASCII
WE8DEC
ISO-LATIN-1
UTF8

Users must include the appropriate extension zip in their
CLASSPATH if utilization of other character sets are desired.

It is important to note that extension zip files are large in
size due to the requirement of supporting a large number of
character sets. Users may choose to include only the necessary
classes from the extension zip file. To do so, users can first
unzip the extension zip file, and then put only the necessary
classes in the CLASSPATH. The character set extension class
files are named in the following format:

CharacterConverter<OracleCharacterSetId>.class

where <OracleCharacterSetId> is the hexidecimal representation of
the Oracle character set id of the corresponding character set.


Installation
------------

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

The Oracle installer installs the JDBC Drivers in the
[ORACLE_HOME]/jdbc directory.


Setup
-----

Win95/Win98/NT

- Add [ORACLE_HOME]\jdbc\lib\classes111.zip
and [ORACLE_HOME]\jdbc\lib\nls_chaset11.zip to your CLASSPATH
(If using JDK-1.0.2 add classes102.zip and nls_charset10.zip instead)
- Add [ORACLE_HOME]\jdbc\lib to your PATH

Solaris
- Add [ORACLE_HOME]/jdbc/lib/classes111.zip
[ORACLE_HOME]/jdbc/lib/nls_charset10.zip to your CLASSPATH
(If using JDK-1.0.2 add classes102.zip and nls_charset10.zip instead)
- Add [ORACLE_HOME]/jdbc/lib to your LD_LIBRARY_PATH

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

Please refer to the documentation for details regarding
usage of Oracle's JDBC Drivers.


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 make sure that the following statement is executed at least
once in your Java session:

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.


JDBC KPRB:

Connection conn =
DriverManager.getConnection ("jdbc:oracle:kprb:");

Note the necessary trailing ':' character.

In JDBC KPRB you do not pass information about the database as you
can only connect to the database you're executing in.

You can also do the following:
Connection conn = new oracle.jdbc.driver.OracleDriver ().defaultConnection ();

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:
--------------

1. Defining a RAW or CHAR column to a BLOB/CLOB will cause a
server side crash, regardless of the driver type.

2. Programs can fail to open 16 or more connections using
our client side drivers at any one time. This is not a limitation
caused by the JDBC drivers. It is most likely that the limit of
per-process file descriptors is exceeded. The solution is to
increase this limit.

3. Server-Side JDBC
- Data access for LONG and LONG RAW types
through the server-side JDBC driver only is limited to 32K of data.
- Inserts of Object Types (Oracle 8 object values, Collections
and References) will not work when the database compatibility
mode is set to 8.0. There is no problem when the compatibility
mode is set to 8.1.
- Statement.cancel () is not implemented in the server-side JDBC.
- java.sql.SQLException.getSQLState () will fail with the server-side JDBC.

4. JDBC-OCI driver on an SSL connection hangs when
the Java Virtual Machine is running in green threads mode.
The workaround is to run the Java Virtual Machine
in native threads mode.

5. JDBC-Thin driver cannot be used with nls usernames that contain
8 bit characters in which the highest order bit is set. However,
muti-byte character sets for usernames work.

6. JDBC-Thin driver always renders ORA messages in English. Date-time
format, currenct symbol and decimal symbols are always presented in
American conversion.


Other Server-Side Issues:
-------------------------

Java stored Procedures:
----------------------

Please note that examples for callins and instance methods
using Oracle 8 Object Types are provided in:
[ORACLE_HOME]/javavm/demo/demo.zip

Once unzipped, the directory containing these examples is:

[ORACLE_HOME]/javavm/demo/examples/jsp


Restrictions for Triggers implemented in Java and Object Types in Oracle 8i:
-----------------------------------------------------------------------------

The following restriction is not a restriction related to JDBC programs
running inside the server.

This restriction only affects the IN argument types of
triggers implemented using Java.
Triggers implemented as Java methods cannot have IN arguments
of the following types: Oracle 8 Objects or Collections. This
means the Java methods used to implement triggers cannot have arguments
of types:
oracle.sql.STRUCT
oracle.sql.ARRAY
oracle.jdbc2.Struct
oracle.jdbc2.Array
any class implementing oracle.jdbc2.SQLDATA or oracle.sql.CustomDatum.


Please refer to the 8i documentation for further information.


E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy