Release Notes for Oracle SQLJ Release 9.0.1.0.0 Production

(build version 2.2.1.0) April 23 2001

CONTENTS OF THIS README

  1. WHAT IS SQLJ?
  2. WHAT IS IN THIS DISTRIBUTION?
  3. INSTALLATION
  4. WHAT'S NEW?
  5. PLATFORM-SPECIFIC INFORMATION
  6. BUGS FIXED
  7. KNOWN RESTRICTIONS AND PROBLEMS
  8. USING SQLJ IN Server-Side JavaVM: KNOWN RESTRICTIONS AND PROBLEMS
1. WHAT IS SQLJ?

Oracle, IBM, Compaq, Sybase, Informix, Sun Microsystems, and others have contributed to the SQLJ Standard for embedding SQL statements and constructs in Java programs (ISO/IEC 9075-10:2000, formerly ANSI X3.135.10-1998).

SQLJ is a way to reduce the development and maintenance costs of Java programs that require Database connectivity. SQLJ provides a simpler model for Java code containing static SQL Statements (SQL that does not change each time you run your application or applet. Applications typically contain more static SQL than dynamic SQL). The reduction in the cost of development and maintenance occurs because SQLJ uses an easier methodology of embedding SQL directly into Java programs, resulting in more concise and more legible code. SQLJ can further make coding easier by providing compile-time checks on the SQL statements your application uses. In using dynamic SQL APIs such as JDBC, you won't find out if your SQL is syntactically or semantically wrong until you test the line in your code that runs it.

This implementation, the 9.0.1.0.0 release of Oracle's SQLJ Implementation, is in the form of a translator that takes SQLJ programs and turns them into Java programs that call -via the SQLJ runtime- JDBC. The translator itself is written purely in Java.

This release supports the ISO (formerly ANSI) standard for embedding SQL in Java.

This release supports the features of the Oracle 9.0.1.0.0 JDBC drivers. In addition, this release also supports the embedding of dynamic SQL fragments in SQLJ statements. You can use this release with any Oracle JDBC driver running against an Oracle database, as well as any standard JDBC Driver running against any database system.

For more information, visit the Oracle Technology network site at:

http://technet.oracle.com/tech/java/sqlj_jdbc/ You can also find information on SQLJ at: http://www.oracle.com/java/sqlj/ Oracle Support services this product. For more information see: http://www.oracle.com/support/ Note on Version Numbers:

Version 9.0.1 is synonymous with Oracle9i, version 8.1.7 is synonymous with Oracle8i Release 3, version 8.1.6 is synonymous with Oracle8i Release 2, and version 8.1.5 corresponds to Oracle8i.

2. WHAT IS IN THIS DISTRIBUTION?

We assume that you have installed the SQLJ distribution files through the Oracle 9.0.1 Installer into the directory $ORACLE_HOME/sqlj. $ORACLE_HOME is the root installation directory for Oracle products.

This distribution contains:

  • [$ORACLE_HOME/sqlj/lib/runtime11.zip] - runtime for JDK 1.1, Oracle 9.0.1 JDBC
  • [$ORACLE_HOME/sqlj/lib/runtime12.zip] - runtime for JDK 1.2, Oracle 9.0.1 JDBC
  • [$ORACLE_HOME/sqlj/lib/runtime.zip] - runtime for all JDK, all Oracle JDBC drivers
  • [$ORACLE_HOME/sqlj/lib/runtime-nonoracle.zip] - runtime for all JDK, and non-Oracle JDBC drivers
  • Direct your Web browser to $ORACLE_HOME/sqlj/index.html for an index of the SQLJ documentation provided with this SQLJ installation.

    The book "SQLJ Developer's Guide and Reference" is distributed independently as part of the Oracle 9.0.1 documentation. It documents the details of this version of SQLJ - how to test the installation and use the product. The books in the Oracle 9.0.1 documentation are also available online at:

    http://technet.oracle.com/docs/index.htm For information about the JPublisher tool for generating Java classes for SQL object and collection types, please refer to the book "JPublisher Developer's Guide and Reference". Please refer to the book "JDBC Developer's Guide and Reference" for information about Oracle's JDBC drivers.

    3. INSTALLATION

    You must have a JDK 1.1.x or JDK 1.2 or later compatible Java environment. Furthermore, you should have installed the Oracle 9.0.1 JDBC driver.

    Ensure that the directory $ORACLE_HOME/bin with the sqlj shell script or executable is in your PATH.

    --- ATTENTION --- ATTENTION --- ATTENTION --- ATTENTION --- ATTENTION --- --- ATTENTION --- ATTENTION --- ATTENTION --- ATTENTION --- ATTENTION ---

    The "Getting Started" section of the "SQLJ Developer's Guide and Reference" discusses required settings for PATH and CLASSPATH in more detail.

    You should first verify your JDBC installation before using SQLJ. Refer to the section "Getting Started" in the book "SQLJ Developer's Guide and Reference" for information on testing your SQLJ and JDBC installations.

    This distribution of SQLJ has been run under the following configurations:

    4. WHAT'S NEW?

    CHANGES SINCE VERSION 8.1.7.0.0 OF JUN 30 2000

    LANGUAGE

    TRANSLATOR RUNTIME CHANGES SINCE VERSION 8.1.6.0.0 OF SEP 15 1999

    LANGUAGE

    This version supports the ISO standard ISO/IEC 9075-10:2000.

    TRANSLATOR

    The translator's statusMain method can be called multiple times. This permits the embedding of SQLJ in Oracle's JSP translator [Bug 1321820]

    RUNTIME

    SEE ALSO: Bug fixes - section 6. below.

    CHANGES SINCE VERSION 8.1.5.0.0 (AND SOME SINCE 8.1.4)

    LANGUAGE

    TRANSLATOR CHECKING

    The default offline and online checker class is now oracle.sqlj.checker.OracleChecker. Depending on the JDBC driver detected in your configuration, an appropriate checker will be selected. You need only explicitly specify a particular checker when you are using an 8.0.x or 8.1.x or later JDBC driver and want to"downgrade" the types supported by your program to Oracle7 functionality.

    PERFORMANCE

    SQLJ now supports all the performance enhancements previously available through Oracle's JDBC drivers. See "SQLJ User's Guide and Reference - Appendix A." for a complete description.

    RUNTIME

    Changes in runtime support: [$ORACLE_HOME/sqlj/doc/runtime/RELEASENOTES.txt]

    5. PLATFORM-SPECIFIC INFORMATION

    We offer several general troubleshooting tips that should help in working around platform specific problems that might occur.

    GENERAL TROUBLESHOOTING

    UNIX PLATFORMS WINDOWS PLATFORMS

    Note that the wrapper executable $ORACLE_HOME/bin/sqlj.exe has only been tested on Windows NT.

    6. BUGS FIXED

    IN SQLJ VERSION 9.0.1

    TRANSLATOR

    RUNTIME IN SQLJ VERSION 8.1.7

    TRANSLATOR

    RUNTIME IN SQLJ VERSION 8.1.6

    LANGUAGE

    TRANSLATOR ONLINE CHECKING RUNTIME

    A SQLException will now be issued when a SQLJ connection context is initialized with a null JDBC connection.

    7. KNOWN RESTRICTIONS AND PROBLEMS

    A list of know issues and bugs in SQLJ version 9.0.1.0.0

    LANGUAGE

    TRANSLATOR RUNTIME 8. USING SQLJ IN Server-side JavaVM: KNOWN RESTRICTIONS AND PROBLEMS

    For your convenience we list some additional limitations and differences of the SQLJ translator that is part of the Oracle 9.0.1 server-side JavaVM.

    You may find this useful when you want to compile the same code on both, client and server. You can also circumvent the limitations below by compiling your sources on the client and then uploading the compiled files with loadjava.

    IMPORTANT: Since the server-side JavaVM implements JDK 1.2, it is recommended that you use JDK 1.2, the Oracle 9.0.1 JDBC driver library classes12.zip, and the SQLJ runtime library runtime12.zip to compile and test your programs on the client. This ensures the highest degree of correspondence between your client and server-side environments.

    LANGUAGE

    TRANSLATOR