Oracle9i Lite Relational Database
The Oracle9i Lite relational database is surprisingly powerfulalmost to the point where you begin to question the "Lite" nametag! The database supports 100% Java development (through JDBC drivers and the database's native support for embedded SQLJ and Java stored procedures) as well as programming from any development tool that supports ODBC (Visual Basic, C++, Delphi, and so on). For those who make use of Oracle9i Server's object database capabilities, Oracle has included support for their OKAPI (Object Kernel API), callable from any C/C++ application. Oracle9i Lite's SQL is a robust implementation of SQL that falls somewhere short of Oracle's full-blown PL/SQL in terms of capabilities. While it's impossible to build fully declarative applications in Oracle9i Lite SQL (as you could in PL/SQL), it will be more than sufficient for most development tasks. Oracle9i Lite also includes an interactive tool named Mobile SQL that is the mobile equivalent of Oracle's venerable SQL*Plus tool. Mobile SQL accesses the underlying database via both ODBC and OKAPI interfaces, supporting both relational and object query functionality.
As mentioned earlier, Oracle9i Lite is a clear leader in the mobile database market in terms of its support for Java in the database. From the Oracle9i Lite docs, Java support is offered through all of the following:
Native JDBC driver for Oracle9i Lite
Support for Java stored procedures and triggers
Java Access Classes (JAC), a class library that provides an object-oriented interface to the core database
To build a Java stored procedure or trigger, Java classes are loaded into the database (using the loadjava command-line utility), and then a call specification is created for the class using the CREATE FUNCTION or CREATE PROCEDURE SQL command. Once loaded, the triggers will be fired when the specified database event (INSERT, UPDATE, or DELETE) occurs. Java stored procedures can be called using standard SQL syntax. It should also be noted that Oracle9i Lite Java stored procedures can also be called from any application written in any programming language (assuming the use of valid JDBC or ODBC drivers). The Oracle9i Lite JDBC driver fully supports the JDBC 1.22 specification and provides additional support for some JDBC 2.0 features, including support for BLOB/CLOB datatypes. Finally, Oracle9i Lite's SQLJ support enables static SQL statements to be embedded in Java code, which should be familiar to anyone who has ever worked with embedded SQL.