Release Notes for Oracle SQLJ Release 10.1.0.0.0 Beta
 

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

Versions of SQLJ are being distributed with Oracle database releases, as well as Oracle iAS releases. Version 10.1.0.0.0 is distributed with Oracel 10.1.0.0.0.  Version 9.2.3 is distributed with Oracle 9i iAS Release 3.0 (iAS release 9.0.3) and is based on SQLJ version 9.2.0 with additional functionality for iAS. Version 9.2.0 is synonymous with Oracle9i Database Release 2. Version 9.0.2 is synonymous with Oracle9i iAS Release 2.0. 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. 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 10i Release 1 Installer into the directory$ORACLE_HOME/sqlj. $ORACLE_HOME is the root installation directory for Oracle products.

This distribution also comprises an installation of the JPublisher product. Please refer to the JPublisher release notes at [$ORACLE_HOME/sqlj/READMEJPub.txt]. JPublisher is installed simultaneously with SQLJ.

The SQLJ part of this distribution contains:

All runtimes are also distributed in uncompressed .zip format. 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 10i Release 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 10i Release 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 or later.

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 9.2.3.0.0  of  Sept 24, 2002

SQLJ supports SQLJ ISO savepoint syntax, added to the support of Oracle-specific savepoint syntax.

With Oracle DMS support in Oracle9iAs, SQLJ can monitor and report SQLJ runtime performance, such as iterator accessing time and query exectution time.

CHANGES SINCE VERSION 9.2.0.0.0  of  FEB 15, 2002

No changes to SQLJ.  Please see the JPublisher README for changes to JPublisher in this release.

CHANGES SINCE VERSION 9.0.2.0.0 of DEC 18, 2001

TRANSLATOR

LANGUAGE. RUNTIME


CHANGES SINCE VERSION 9.0.1.0.0 of APRIL 23, 2001

TRANSLATOR

RUNTIME 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 10.1.0

TRANSLATOR

SQLJ IN Server-side JavaVM


IN SQLJ VERSION 9.2.3

TRANSLATOR

IN SQLJ VERSION 9.2.0

TRANSLATOR

IN SQLJ VERSION 9.0.2

TRANSLATOR

SQLJ IN Server-side JavaVM
  • SQLJ supports nested interface declarations in server-side JavaVM [Bug 1049817], such as

  •      interface Nested { #sql static iterator NestedCur(int); }
    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 10.1.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 10.1.0 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.3, it is recommended that you use JDK 1.3, the Oracle 10.1.0 JDBC driver library classes12.jar, and the SQLJ runtime library runtime12.jar 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 RUNTIME