Readme.txt
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:31k
源码类别:

Java编程

开发平台:

Java

  1. Oracle JDBC Drivers release 9.2.0 README
  2. =============================================
  3. What Is New In This Release Since 9.0.2 ?
  4. -----------------------------------------
  5. New classes file name for JDK 1.4 and beyond
  6.     Beginning with this release the classes files for JDK 1.4 and
  7.     beyond will be named ojdbc<jdk ver>.jar. So, the classes file for
  8.     JDK 1.4 is named ojdbc14.jar.  The names for the JDK 1.1
  9.     and 1.2 classes files will not be changed. We will not provide
  10.     .zip versions of the classes files beyond JDK 1.2.
  11. Direct support for LOBs in the Thin driver.
  12.     The Thin driver now provides direct support for BFILEs, BLOBs, and
  13.     CLOBs. Prior to this release it supported them via calls to PL/SQL
  14.     routines. 
  15. Statement Caching
  16.     The Oracle statement caching API has been changed. There were
  17.     substantial problems with the previous API and we were able to
  18.     resolve them only by changing the API. The old API is still
  19.     supported, but is deprecated. For details on the new API see the
  20.     JavaDoc. 
  21. Certified with RAC
  22.     The Oracle JDBC drivers are certified to work correctly in an
  23.     Oracle 9i RAC environment.
  24. JDBC 3.0 feature support
  25.     A few critical JDBC 3.0 features are supported.
  26.     JDK 1.4--JDK 1.4 is supported with ojdbc14.jar and
  27.     nls_charset12.jar. 
  28.     Toggling between global and local transactions--When using an XA
  29.     connection an application can toggle between global and local
  30.     transactions. 
  31.     Savepoints--Savepoints are supported in ojdbc14.jar. They are also
  32.     supported in classes12 and classes11 via Oracle extensions. The
  33.     extensions are forward compatible with ojdbc14.jar. See the
  34.     JavaDoc for more details.
  35.     Reuse of prepared statements--PreparedStatements can be used with
  36.     different pooled connections. This is an important performance
  37.     improvement for middle tier applications.
  38. Connection wrapping
  39.     It is now possible to seamlessly wrap an OracleConnection instance
  40.     with a user defined class that implements
  41.     oracle.jdbc.OracleConnection. Such a wrapper can be used where
  42.     ever a Connection argument is needed (except CustomDatum) and will
  43.     be returned as the value of getConnection. It is recommended that
  44.     users subclass oracle.jdbc.OracleConnectionWrapper if
  45.     possible. If not then base your implementation on the source for
  46.     OracleConnectionWrapper which can be found in the samples
  47.     directory. 
  48. Deprecate RAW(Object) constructor
  49.     The constructor RAW(Object) has been deprecated. It will not be
  50.     removed, but its behavior will be changed in the next major
  51.     release. At present it has a documented, but anomolous behavior
  52.     when passed a String object. It constructs a RAW containing the
  53.     byte representation of the String in the platform encoding. All
  54.     other transformations between Strings and RAWs assume that the
  55.     String is the hex character representation of the bytes in the
  56.     RAW. In the next major release this constructor will be changed to
  57.     conform to that convention. This will also impact ADTs with RAW
  58.     fields constructed from Strings. Two static methods have been
  59.     added to RAW. oldRAW(Object) will always have the current platform
  60.     encoding behavior. newRAW(Object) will always have the hex
  61.     character behavior. See the JavaDoc for more details.
  62. DMS metrics
  63.     The DMS metrics reported by JDBC when using classes12dms.jar have
  64.     been reorganized. Additional metrics on Statements including
  65.     execution and fetch time are reported.
  66. defineColumnType(int, int) of CHAR or VARCHAR column
  67.     Calling defineColumnType as CHAR or VARCHAR and not passing a size
  68.     will now raise a SQLWarining. Beginning in the next major release
  69.     it will throw a SQLException.
  70. OracleLog
  71.     Significant increase in the number of methods that include calls
  72.     to OracleLog. Also, you can enable OracleLog tracing by setting
  73.     system properties. Set oracle.jdbc.Trace to "true" to enable
  74.     tracing. Set oracle.jdbc.LogFile to set the name of the trace
  75.     output file. If this is not set trace output is sent to
  76.     System.out. OracleLog tracing is only available in the debug
  77.     classes files, classes111_g.*, classes12_g.*, and ojdbc_g.jar.
  78. Support for services in URLs
  79.     Oracle is replacing the SID mechanism for identifying databases
  80.     with a new services approach. This has been available in the
  81.     database since 8.1.7. JDBC now supports services in the connect
  82.     URL for the Thin driver. We strongly encourage everyone to
  83.     transition from SIDs to services as quickly as possible as SIDs
  84.     will be cease to be supported in one of the next few releases of
  85.     the database.
  86.     The basic format of a service URL is:
  87.       jdbc:oracle:thin:[<user>/<password>]@//<host>[:<port>]/<service>
  88.     Example:
  89.       jdbc:oracle:thin:@//myserver.com/customer_db
  90.     For more info see the JDBC User Guide.
  91. Major bugs fixed in since 9.0.2:
  92. --------------------------------
  93. BUG-1324918
  94.     The JDBC OCI driver can consume temporary tablespace when it is
  95.     used to update a CLOB with PreparedStatement.setCharacterStream()
  96.     repeatedly.  In such situation, either the temp tablespace will
  97.     continue to grow, or you may get this exception in thread "main":
  98.     java.sql.SQLException: ORA-01652: unable to extend segment if
  99.     you have a limit on the tablespace size.  The workaround is to 
  100.     use oracle.sql.CLOB::setCharacterOutputStream() instead.
  101. BUG-1591421 (since 9.0.0)
  102.     A connection created from the connection cache fails to pass the
  103.     default batch value to the statement object.
  104. BUG-1630414 (since 9.0.0)
  105.     After a type evolution is performed on an existing type, objects
  106.     of the evolved type cannot be retrieved via JDBC.
  107. BUG-1730903 (since 9.0.0)
  108.     setFormOfUse() method must be put before blinding/definding SQL 
  109.     NCHAR datatypes.  For example, setString() and 
  110.     registerOutParameter() has to be called after setFormOfUse().
  111.     Otherwise, unpredictable results will be received.  This 
  112.     restriction applies to all JDBC drivers.
  113. BUG-1714281 (since 9.0.1)
  114.     The maximum number of characters can be inserted into NCHAR 
  115.     datatypes using setString() is less than the database maximum 
  116.     size if the database character set is neither US7ASCII nor 
  117.     WE8ISO8859P1.  This restriction applies to JDBC Thin and Thin 
  118.     Server-side drivers.  Workaround is to use setCharacterStream().
  119. BUG-1720657 ( since 9.0.1)
  120.     Java code runing on the server which uses the KPRB driver to execute
  121.     multiple create type statements may cause server crashes. Similar
  122.     problems exist if a PL/SQL block uses execute immediate to execute
  123.     the same statements. The workaround is to use the thin driver or to
  124.     perform the needed operations another way.
  125. Bug-2100396 
  126.     transaction isolation level is not reset when using JDBC api
  127. Bug-2100385 
  128.     JDBC cache does not handle inactivity timeout for xaconnections
  129. Bug-2100350
  130.     JDBC cache does not work for inactivity timeout
  131. Bug-2018316 
  132.     getConnection should ignore case for user/passwd, setCache should
  133.     take string
  134. Bug-2013416 
  135.     JDBC connection cache does not have any timeouts
  136. BUG 1868371 - setCHAR() does not convert from the CHAR object's
  137.     charset to the db char set This JDBC limitation since 8.1.6 is
  138.     removed in 9iR2. Previously constructing a Oracle.sql.CHAR data
  139.     type with the following statement requires to use either UTF8,
  140.     US7ASCII or WE8ISO8859P1 in the "char set" part for database SQL
  141.     CHAR datatypes (limitation did apply to database object and SQL
  142.     NCHAR datatypes) stmt.setCHAR(1, new CHAR(<bytes>, <char set>);
  143. BUG 1730903 - data corruption with setFormOfUse() after
  144.     registerOutParameter(). This JDBC limitation since 9.0.1 is removed
  145.     in 9iR2
  146. BUG 1714281 - SQLException with setString() of a long string to
  147.     SQL NCHAR datatypes This THIN driver specific limitation since
  148.     9.0.1 is removed in 9iR2.  setString() can now blind the same size
  149.     of data as in database for SQL NCHAR datatypes
  150. BUG 2012717 - AVOID THE RESETTING OF NLS_LANG IN JDBC-OCI DRIVER
  151.     Since 7.3.4, JDBC-OCI driver reset NLS_LANG internally to ".UTF8" 
  152.     when the client character set is neither US7ASCII nor
  153.     WE8ISO8859P1.  This means that in a child process fork out from
  154.     JDBC-OCI, UTF8 data is returned no matter what the NLS_LANG is set
  155.     to. In 9iR2, this limitation is removed.  Data are returned in the
  156.     same charset encoding as the client character set.
  157. BUG-1018797
  158.     Extra characters may be appended to the end of a CLOB value
  159.     mistakenly under the following conditions:
  160.     - setCharacterStream() is used to insert a CLOB value, and
  161.     - The Oracle server uses multi-byte character set.
  162. Driver Versions
  163. ---------------
  164. These are the driver versions in the 9.2.0 release:
  165.   - JDBC OCI Driver 9.2.0
  166.     Client-side JDBC driver for use on a machine where OCI 9.2.0 is
  167.     installed.
  168.   - JDBC Thin Driver 9.2.0
  169.     100% Java client-side JDBC driver for use in Java applets and
  170.     applications.
  171.   - JDBC Thin Server-side Driver 9.2.0
  172.     JDBC driver for use by Java Stored Procedures or by Java CORBA 
  173.     objects running in Oracle 9.0.1.  This driver is typically used
  174.     in a middle tier server.
  175.   - JDBC Server-side Internal Driver 9.2.0
  176.     Server-side JDBC driver for use by Java Stored procedures. This
  177.     This driver used to be called the "JDBC Kprb Driver".
  178. For complete documentation, please refer to "JDBC Developer's Guide
  179. and Reference".
  180. Contents Of This Release
  181. ------------------------
  182. The [ORACLE_HOME]/jdbc/lib directory contains:
  183.   - classes111.zip & classes111.jar
  184.     Classes for use with JDK 1.1.x.  It contains the JDBC driver
  185.     classes except classes necessary for NLS support in Object and
  186.     Collection types.
  187.   - nls_charset11.zip & nls_charset11.jar
  188.     NLS classes for use with JDK 1.1.x.  It contains classes necessary
  189.     for NLS support in Object and Collection types.
  190.   - classes111_g.zip & classes111_g.jar
  191.     Same as classes111.zip, except that classes were compiled with
  192.     "javac -g" and contain OracleLog traceing code.
  193.   - classes12.zip & classes12.jar
  194.     Classes for use with JDK 1.2.x.  It contains the JDBC driver
  195.     classes except classes necessary for NLS support in Object and
  196.     Collection types.
  197.   - nls_charset12.zip & nls_charset12.jar
  198.     NLS classes for use with JDK 1.2.x.  It contains classes necessary
  199.     for NLS support in Object and Collection types.
  200.   - classes12_g.zip & classes12_g.jar
  201.     Same as classes12.zip, except that classes were compiled with
  202.     "javac -g" and contain OracleLog tracing code.
  203.   - classes12dms.jar
  204.     Same as classes12.jar except contains additional code to support
  205.     Oracle Dynamic Monitoring Service.
  206.   - classes12dms_g.jar
  207.     Same as classes12dms.jar except that classes were compiled with 
  208.     "javac -g" and contain OracleLog traceing code.
  209.   - ojdbc14.jar
  210.     Classes for use with JDK 1.4. It contains the JDBC driver
  211.     classes except classes necessary for NLS support in Object and
  212.     Collection types. Use nls_charset12.jar if needed.
  213.   - ojdbc14_g.jar
  214.     Same as ojdbc14.jar except that classes were compiled with
  215.     "javac -g" and contain OracleLog tracing code.
  216.   In general, <file>.zip and <file>.jar are identical except for the
  217.   format of the archive.  Both the .zip and .jar formats are provided
  218.   for JDK 1.1 and JDK 1.2. Only .jar files will be provided for JDK
  219.   1.4 and beyond. So far, there is no need for JDK 1.3 classes files;
  220.   use classes12.jar with JDK 1.3.
  221.   Note that most of the classes pertaining to specific character sets
  222.   support in Oracle Object and Collection types are separated from the
  223.   basic zip/jar files.  These NLS classes are packaged into the
  224.   extension zip/jar files.  This allows the user to include the NLS
  225.   classes only if necessary.  Please refer to the "NLS Extension Zip
  226.   Files (for client-side only)" section for further details. Also
  227.   note that the nls_charset files are much smaller than in prior
  228.   releases. These .zip/.jar files now contain a more compact
  229.   representation of the conversion information rather than actual
  230.   .class files.
  231. [ORACLE_HOME]/lib directory contains libocijdbc9.so, libocijdbc9_g.so
  232. libheteroxa9.so and libheteroxa9_g.so (on Solaris), which are the
  233. shared libraries used by the JDBC OCI driver. 
  234. [ORACLE_HOME]/jdbc/doc/javadoc.tar contains the JDBC Javadoc.  This
  235. release contains a beta release of the Javadoc files for the public
  236. API of the public classes of Oracle JDBC.
  237. [ORACLE_HOME]/jdbc/demo/demo.tar contains sample JDBC programs.
  238. All of the sample programs have been rewritten to use JDK 1.2 and the
  239. new Oracle standard sample schemas. They no longer use the old standby
  240. scott/tiger schema. These new sample schemas are much more feature
  241. rich and so make it easier to demonstrate Oracle features. All Oracle
  242. sample code and training will be using these new schemas very
  243. soon. Most already does.
  244. NLS and NLS Extension Zip/Jar Files (for client-side only)
  245. ----------------------------------------------------------
  246. The JDBC Server-side Internal Driver provides complete NLS support.
  247. It does not require any NLS extension zip/jar files, nls_charset*.*.
  248. Discussions in this section do not apply to the JDBC Server-side
  249. Internal Driver.  You can skip this section if you only use the
  250. Server-side Internal Driver.
  251. The basic zip/jar files (classes111.zip, classes111.jar,
  252. classes12.zip and classes12.jar, ojdbc14.jar) contain all the
  253. necessary classes to provide complete NLS support for:
  254.   - Oracle Character sets for CHAR/VARCHAR/LONGVARCHAR/CLOB type data
  255.     that is not retrieved or inserted as a data member of an Oracle 8
  256.     Object or Collection type.
  257.   - NLS support for CHAR/VARCHAR data members of Objects and
  258.     Collections for a few commonly used character sets.  These
  259.     character sets are:  US7ASCII, WE8DEC, WE8ISO8859P1 and UTF8.
  260. Users must include the appropriate extension zip in their CLASSPATH
  261. if utilization of other character sets in CHAR/VARCHAR data members
  262. of Objects/Collections is desired.  It is important to note that
  263. extension zip files are large in size due to the requirement of
  264. supporting a large number of character sets.  Users may choose to
  265. include only the necessary classes from the extension zip/jar file.
  266. To do so, users can first un-pack the extension zip/jar file, and
  267. then put only the necessary files in the CLASSPATH.  The character
  268. set extension files are named in the following format:
  269.   CharacterConverter<OracleCharacterSetId>.glb
  270. where <OracleCharacterSetId> is the hexadecimal representation of the
  271. Oracle character set id of the corresponding character set.
  272. In addition, users can also include internationalized Jdbc error
  273. message files selectively.  The message files are included in
  274. classes*.* with the name oracle/jdbc/dbaccess/Messages_*.properties.
  275. -----------------------------------------------------------------------
  276. Installation
  277. ------------
  278. Please do not try to put multiple versions of the Oracle JDBC drivers
  279. in your CLASSPATH.  The Oracle installer installs the JDBC Drivers in
  280. the [ORACLE_HOME]/jdbc directory.
  281. Setting Up Your Environment
  282. ---------------------------
  283. On Win95/Win98/NT:
  284.   - Add [ORACLE_HOME]jdbclibclasses111.zip and
  285.     [ORACLE_HOME]jdbclibnls_charset11.zip to your CLASSPATH.
  286.     (Add classes12.zip and nls_charset12.zip if JDK 1.2.x or 1.3 is
  287.     used. Add ojdbc14.jar and nls_charset12.zip if JDK 1.4 is used.)
  288.   - Make sure [ORACLE_HOME]bin is in your PATH.
  289. On Solaris/Digital Unix:
  290.   - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
  291.     [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
  292.     (Add classes12.zip and nls_charset12.zip if JDK 1.2.x or 1.3 is
  293.      used. Add ojdbc14.jar and nls_charset12.zip if JDK 1.4 is used.)
  294.   - Add [ORACLE_HOME]/jdbc/lib to your LD_LIBRARY_PATH.
  295. On HP/UX:
  296.   - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
  297.     [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
  298.     (Add classes12.zip and nls_charset12.zip if JDK 1.2.x or 1.3 is
  299.     used. Add ojdbc14.jar and nls_charset12.zip if JDK 1.4 is used.)
  300.   - Add [ORACLE_HOME]/jdbc/lib to your SHLIB_PATH and LD_LIBRARY_PATH.
  301. On AIX:
  302.   - Add [ORACLE_HOME]/jdbc/lib/classes111.zip and
  303.     [ORACLE_HOME]/jdbc/lib/nls_charset11.zip to your CLASSPATH.
  304.     (Add classes12.zip and nls_charset12.zip if JDK 1.2.x 1.3 is
  305.      used.  Add ojdbc14.jar and nls_charset12.zip if JDK 1.4 is used.)
  306.   - Add [ORACLE_HOME]/jdbc/lib to your LIBPATH and LD_LIBRARY_PATH.
  307. Some Useful Hints In Using the JDBC Drivers
  308. -------------------------------------------
  309. Please refer to "JDBC Developer's Guide and Reference" for details
  310. regarding usage of Oracle's JDBC Drivers.  This section only offers
  311. useful hints.  These hints are not meant to be exhaustive.
  312. These are a few simple things that you should do in your JDBC program:
  313.  1. Import the necessary JDBC classes in your programs that use JDBC.
  314.     For example:
  315.       import java.sql.*;
  316.       import java.math.*;
  317.  2. Register the Oracle driver before before calling other JDBC APIs.
  318.     (This is not needed if you are using the JDBC Server-side Internal
  319.     Driver because registration is done automatically in the server.)
  320.     To register the Oracle driver, make sure the following statement
  321.     is executed at least once in your Java session:
  322.       DriverManager.registerDriver(
  323.         new oracle.jdbc.OracleDriver());
  324.  3. Open a connection to the database with the getConnection call.
  325.     Different connection URLs should be used for different JDBC
  326.     drivers.  The following examples demonstrate the different URLs.
  327.     For the JDBC OCI Driver:
  328.       Connection conn = DriverManager.getConnection(
  329.                           "jdbc:oracle:oci:@<database>",
  330.                           "my_user", "my_password");
  331.       where <database> is either an entry in tnsnames.ora or a SQL*net
  332.       name-value pair.
  333.     For the JDBC Thin Driver, or Server-side Thin Driver:
  334.       Connection conn = DriverManager.getConnection(
  335.                           "jdbc:oracle:thin:@<database>",
  336.                           "my_user", "my_password");
  337.       where <database> is either a string of the form
  338.       <host>:<port>:<sid>,  a SQL*net name-value pair, or a service
  339.       name. 
  340.     For the JDBC Server-side Internal Driver:
  341.       Connection conn = DriverManager.getConnection(
  342.                           "jdbc:oracle:kprb:");
  343.       Note that the trailing ':' character is necessary.  When you use
  344.       the Server-side Internal Driver, you always connect to the
  345.       database you are executing in.  You can also do this:
  346.       Connection conn
  347.         = new oracle.jdbc.OracleDriver().defaultConnection();
  348. New Package oracle.jdbc
  349. -----------------------
  350. Beginning in Oracle 9i, the Oracle extensions to JDBC are captured in
  351. the package oracle.jdbc. This package contains classes and interfaces
  352. that specify the Oracle extensions in a manner similar to the way the
  353. classes and interfaces in java.sql specify the public JDBC API.
  354. Your code should use the package oracle.jdbc instead of the package
  355. oracle.jdbc.driver used in earlier versions of Oracle. Use of the
  356. package oracle.jdbc.driver is now deprecated, but will be supported
  357. for backwards compatibility.
  358. All that is required to covert your code is to replace
  359. "oracle.jdbc.driver" with "oracle.jdbc" in the source and
  360. recompile. This cannot be done piecewise. You must convert all classes
  361. and interfaces that are referenced by an application. Conversion is
  362. not required, but is highly recommended. Future releases of Oracle will
  363. have features that are incompatible with use of the package
  364. oracle.jdbc.driver.
  365. The purpose of this change in to enable the Oracle JDBC drivers to
  366. have multiple implementations. In all releases up to and including
  367. Oracle 9i, all of the Oracle JDBC drivers have used the same top level
  368. implementation classes, the classes in the package
  369. oracle.jdbc.driver. By converting your code to use oracle.jdbc, you
  370. will be able to take advantage of future enhancements that use
  371. different implementation classes. There are no such enhancements in
  372. Oracle 9i, but there are plans for such enhancements in the future.
  373. Additionally, these interfaces permit the use of some code patterns
  374. that are difficult to use when your code uses the package
  375. oracle.jdbc.driver. For example, you can more easily develop wrapper
  376. classes for the Oracle JDBC classes. If you wished to wrap the
  377. OracleStatement class in order to log all SQL statements, you could
  378. easily do so by creating a class that wraps OracleStatment. That class
  379. would implement the interface oracle.jdbc.OracleStatement and hold an
  380. oracle.jdbc.OracleStatement as an instance variable. This wrapping
  381. pattern is much more difficult when your code uses the package
  382. oracle.jdbc.driver as you cannot extend the class
  383. oracle.jdbc.driver.OracleStatement. In implementing a Connection
  384. wrapper class, you should either inherit from the class
  385. oracle.jdbc.OracleConnectionWrapper, or base your class on that class.
  386. The source for oracle.jdbc.OracleConnectionWrapper is included in the
  387. demos directory.
  388. Once again, your code should use the new package oracle.jdbc instead
  389. of the package oracle.jdbc.driver. Conversion is not required as
  390. oracle.jdbc.driver will continue to be supported for backwards
  391. compatibility. Conversion is highly recommended as there will in later
  392. releases be features that are not supported if your code uses
  393. oracle.jdbc.driver.
  394. Java Stored Procedures
  395. ----------------------
  396. Please note that examples for callins and instance methods using Oracle
  397. 8 Object Types are provided in:
  398.   [ORACLE_HOME]/javavm/demo/demo.zip
  399. Once unzipped, the directory containing the examples is:
  400.   [ORACLE_HOME]/javavm/demo/examples/jsp
  401. Known Problems/Limitations In This Release
  402. ------------------------------------------
  403. The following is a list of known problems/limitations:
  404.  *  There is a limitation regarding the use of stream input for LOB
  405.     types.  Stream input for LOB types can only be used for 8.1.7 or
  406.     later JDBC OCI driver connecting to an 8.1.7 or later Oracle
  407.     server.  The use of stream input for LOB types in all other
  408.     configurations may result in data corruption.  PreparedStatement
  409.     stream input APIs include: setBinaryStream(), setAsciiStream(),
  410.     setUnicodeStream(), setCharacterStream() and setObject().
  411.  *  Programs can fail to open 16 or more connections using our
  412.     client-side drivers at any one time.  This is not a limitation 
  413.     caused by the JDBC drivers.  It is most likely that the limit of
  414.     per-process file descriptors is exceeded.  The solution is to 
  415.     increase the limit. 
  416.  *  The Server-side Internal Driver has the following limitation:
  417.     - Data access for LONG and LONG RAW types is limited to 32K of
  418.       data.
  419.     - Inserts of Object Types (Oracle Objects, Collections and
  420.       References) will not work when the database compatibility mode
  421.       is set to 8.0.  This limitation does not apply when the
  422.       compatibility mode is set to 8.1.
  423.     - In a chain of SQLExceptions, only the first one in the chain
  424.       will have a getSQLState value.
  425.     - Batch updates with Oracle 8 Object, REF and Collection data
  426.       types are not supported.
  427.  *  The JDBC OCI driver on an SSL connection hangs when the Java
  428.     Virtual Machine is running in green threads mode.  A work-around
  429.     is to run the Java Virtual Machine in native threads mode.
  430.  *  Date-time format, currency symbol and decimal symbols are always
  431.     presented in American convention.
  432.  *  When using OracleStatement.defineColumnType(), it is not necessary
  433.     to define the column type to be the same as the column type
  434.     declared in the database.  If the types are different, the
  435.     retrieved values are converted to the type specified in
  436.     defineColumnType.
  437.     Note:  Most reasonable conversions work, but not all. If you find
  438.     a conversion that you think is reasonable, but that does not work,
  439.     please submit a TAR to Oracle Support.
  440.  *  The utility dbms_java.set_output or dbms_java.set_stream that is
  441.     used for redirecting the System.out.println() in JSPs to stdout
  442.     SHOULD NOT be used when JDBC tracing is turned on.  This is
  443.     because the current implementation of dbms_java.set_output and
  444.     set_stream uses JDBC to write the output to stdout.  The result
  445.     would be an infinite loop.
  446.  *  The JDBC OCI and Thin drivers do not read CHAR data via binary
  447.     streams correctly.  In other word, using getBinaryStream() to
  448.     retrieve CHAR data may yield incorrect results.  A work-around is
  449.     to use either getCHAR() or getAsciiStream() instead.  The other
  450.     alternative is to use getUnicodeStream() although the method is
  451.     deprecated.
  452. BUG-899078 (since 8.1.6)
  453.     The JDBC Server-side Internal driver has extra space padding with
  454.     PL/SQL CHAR OUT (2 to 3 space depending on character set).
  455.     Problem occurs in most of the multibyte database character set
  456.     except UTF8.
  457.  *  There is a limitation for Triggers implemented in Java and Object
  458.     Types.  It only affects the IN argument types of triggers
  459.     implemented using Java on the client-side.  The restriction does
  460.     not apply to JDBC programs running inside the server.  Triggers
  461.     implemented as Java methods cannot have IN arguments of Oracle 8
  462.     Object or Collection type.  This means the Java methods used to
  463.     implement triggers cannot have arguments of the following types:
  464.     - java.sql.Struct
  465.     - java.sql.Array
  466.     - oracle.sql.STRUCT
  467.     - oracle.sql.ARRAY
  468.     - oracle.jdbc2.Struct
  469.     - oracle.jdbc2.Array
  470.     - any class implementing oracle.jdbc2.SQLData or
  471.       oracle.sql.CustomDatum
  472.  *  The scrollable result set implementation has the following
  473.     limitation:
  474.     - setFetchDirection() on ScrollableResultSet does not do anything.
  475.     - refreshRow() on ScrollableResultSet does not support all
  476.       combinations of sensitivity and concurrency.  The following
  477.       table depicts the supported combinations.
  478.         Support     Type                       Concurrency
  479.         -------------------------------------------------------
  480.         no          TYPE_FORWARD_ONLY          CONCUR_READ_ONLY
  481.         no          TYPE_FORWARD_ONLY          CONCUR_UPDATABLE
  482.         no          TYPE_SCROLL_INSENSITIVE    CONCUR_READ_ONLY
  483.         yes         TYPE_SCROLL_INSENSITIVE    CONCUR_UPDATABLE
  484.         yes         TYPE_SCROLL_SENSITIVE      CONCUR_READ_ONLY
  485.         yes         TYPE_SCROLL_SENSITIVE      CONCUR_UPDATABLE
  486. BUG-1516862 (since 9.0.0)
  487.     Passing an OPAQUE type as an argument to a Java Stored Procedure
  488.     does not work.
  489. BUG-1542130 (since 9.0.0)
  490.     The use of OciConnectionPool may cause a hang in a multi-threaded
  491.     environment.
  492. BUG-1640110 (since 9.0.0)
  493.     The JDBC OCI driver may hang when executing a query with invalid
  494.     double quotes in the query string.  This problem only occurs when
  495.     the NLS_LANG environment variable is set.
  496.  *  Access to the new Datetime datatypes is only supported in the
  497.     Jdbc Thin driver with JDK 1.2, 1.3 and 1.4.  These Datetime data
  498.     types inlcude: TIMESTAMP, TIMESTAMPTZ and TIMESTAMPLTZ.  In 
  499.     addition, String APIs like PreparedStatement.setString() and
  500.     Resultset.getString() do not work for these data types.  Users
  501.     must use setTIMESTAMP*() and getTIMESTAMP*().
  502. BUG-2171766 (since 9.2.0)
  503.     When writing JDBC code that contains SQL method invocations,
  504.     the syntax " ?.method(args,...) " results in the SQL error
  505.     message: ORA-01036: illegal variable name/number. This message
  506.     is somewhat misleading. What is required is that the ? must be
  507.     followed by a " " (space) to avoid this issue.
  508. BUG-2165794 (since 9.2.0)
  509.     DBC XA applications needing to use TMSUSPEND & TMRESUME features
  510.     need to use the TMNOMIGRATE FLAG. If this flag is not used, the
  511.     application may @receive Error ORA 1002: fetch out of sequence.
  512. BUG-2158394 (since 9.2.0)
  513.     ORA-6505 when setting null to char column via stored procedure 
  514.     using setNull() method with java.sql.Types.CHAR. Using
  515.     java.sql.Types.VARCHAR, is ok. Only occurs with Thin driver and
  516.     JA16SJIS or JA16EUC character sets. 
  517. BUG-2148328 (since 9.2.0)
  518.     On Linux, SJIS data in table names  are returned as replacement
  519.     characters with JDK1.2 and JDK1.3 with both the Thin and OCI
  520.     drivers. This is due to a bug in the JDKs. The workaround is to
  521.     use JDK 1.1.8, which does not have this bug.
  522. BUG-2144602 (since 8.1.7)
  523.     When running Windows2000 with the locale set to Chinese (Taiwan)
  524.     and the character set set to ZHT16DBT, all Chinese characters
  525.     are displayed as "?".
  526. BUG-2130384 (since 9.0.1)
  527.     Does not raise ORA-22814 as it should when inserting too large
  528.     of an element value into a VARRAY using setARRAY.
  529. BUG-2249191
  530.     In the Server Internal Driver, setting the query timeout does not
  531.     (and likely will never) work. The query execution will not be
  532.     canceled when the timeout expires, even if the query runs forever.
  533.     Further, after the query returns, the execution of your code
  534.     may pause for the length of the timeout.
  535. BUG-2213820
  536.     OracleConnectionCacheImpl cannot be serialized because it has a
  537.     member that is not serializable. This causes some problems with
  538.     JSPs that store the connection cache as a bean in session scope.
  539. BUG-2180673
  540.     When using OracleOCIConnectionPool, the methods getPoolSize and
  541.     getActiveSize return the wrong results. getPoolSize always returns
  542.     minLimit and getActiveSize always returns 0.
  543. BUG-1910217
  544.     TIMESTAMPs are not supported in ADTs.
  545. BUG-2245502
  546.     If you use the Thin driver to connect to an 8.1.7 database, and 
  547.     then attempt to access a 7.3.4 database via DBLinks using bind
  548.     variables, the values of the bind variables may be swapped.
  549. BUG-2183691
  550.     The insertRow method on an updateable result set inserts the row
  551.     into the database, but does not insert it into the result set
  552.     itself. 
  553. BUG-2095829
  554.     In the Server Internal Driver, calling a PL/SQL procedure and 
  555.     passing a NULL value to an argument of a user defined type fails.
  556.     In some cases the session hangs, in others you will get ora-3113, 
  557.     ora-3114, or ora-24323.
  558. BUG-1568923 
  559.     Using the OCI driver, using setBytes to insert more than 50K into
  560.     a LONG RAW truncates the inserted value.
  561. BUG-2285052 (since 9.2.0.1)
  562.     Extra space and null characters are returned by ResultSet.getString()
  563.     and Scrollable ResultSet getString() for NCHAR column when the 
  564.     database national character set is UTF8.  This behavior occurs only
  565.     with JDBC THIN driver.
  566.