Oracle8i SQLJ Developer's Guide and Reference Release 3 (8.1.7) Part Number A83723-01 |
Library | Service | Contents | Index

## Overview of Oracle Extensions to the SQLJ Standard

Beginning with Oracle8i release 8.1.7, Oracle SQLJ supports the SQLJ ISO specification. Because the SQLJ ISO standard is a superset of the SQLJ ANSI standard, it requires a JDK 1.2 or later environment that complies with J2EE. The SQLJ ANSI standard requires only JDK 1.1.x. The Oracle SQLJ translator accepts a broader range of SQL syntax than the ANSI SQLJ Standard specifies.

The ANSI standard addresses only the SQL92 dialect of SQL, but allows extension beyond that. Oracle SQLJ supports Oracle's SQL dialect, which is a superset of SQL92. If you need to create SQLJ programs that work with other DBMS vendors, avoid using SQL syntax and SQL types that are not in the standard and, therefore, may not be supported in other environments. (On your product CD, the directory `[Oracle Home]/sqlj/demo/components` includes a semantics-checker that you can use to verify that your SQLJ statements contain only standard SQL.)

Oracle SQLJ supports the following Java types as extensions to the SQLJ standard. Do not use these or other types if you may want to use your code in other environments. To ensure that your application is portable, use the Oracle SQLJ `-warn=portable` flag. (See "Translator Warnings (-warn)".)

Using any of the following extensions requires Oracle customization during translation, as well as the Oracle SQLJ runtime and an Oracle JDBC driver when your application runs:

- instances of `oracle.sql.*` classes as wrappers for SQL data (see "Oracle Type Extensions")

- custom Java classes (classes that implement the `oracle.sql.CustomDatum` interface or the JDBC standard `java.sql.SQLdata` interface), typically produced by the Oracle JPublisher utility to correspond to SQL objects, object references, and collections (see "Custom Java Classes")

- stream instances (`AsciiStream`, `BinaryStream`, `UnicodeStream`) used as output parameters (see "Support for Streams")

- iterator and result set instances as input or output parameters anywhere (the standard specifies them only in result expressions or cast statements; see "Using Iterators and Result Sets as Host Variables" and "Using Iterators and Result Sets as Stored Function Returns")

For general information about Oracle SQLJ extensions, see Chapter 5, "Type Support", and Chapter 6, "Objects and Collections".

| Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
Library | Service | Contents | Index