|Oracle9i Application Developer's Guide - Fundamentals
Release 1 (9.0.1)
Part Number A88876-02
The following sections describe the new features for application development in Oracle9i:
PL/SQL now supports the complete range of syntax for SQL statements, such as
DELETE, and so on. If you received errors for valid SQL syntax in PL/SQL programs before, those statements should now work.
Because of more consistent error-checking, you might find that some invalid code is now found at compile time instead of producing an error at runtime, or vice versa. You might need to change the source code as part of the migration procedure. See Oracle9i Database Migration for details on the complete migration procedure.
When an application encounters some kinds of storage allocation errors, it can suspend operations and take action such as resolving the problem or notifying an operator. The operation can be resumed when storage is added or freed.
Table data can be queried as it existed at a point in time. This lets applications query, compare, or recover past data without involving the DBA and without an expensive recovery operation. The current table data remains available to other applications throughout.
Rather than repeat a complex subquery, you can give it a name and refer to that name multiple times within the same query. This is convenient for coding, and helps the optimizer find common code that can be optimized.
The new datatype
TIMESTAMP records time values including fractional seconds. New datatypes
TIMESTAMP WITH TIME ZONE and
TIMESTAMP WITH LOCAL TIME ZONE allow you to adjust date and time values to account for time zone differences. You can specify whether the time zone observes daylight savings time, to account for anomalies when clocks shift forward or backward. New datatypes
INTERVAL DAY TO SECOND and
INTERVAL YEAR TO MONTH represent differences between two date and time values, simplifying date arithmetic.
You can operate on LOB types much like other similar types. You can use character functions on
NCLOB types. You can treat
BLOB types as
RAWs. Conversions between LOBs and other types are much simpler, particularly when converting from
LONG to LOB types.
Data can be stored in Unicode format using fixed-width or variable-width character sets. String handling and storage declarations can be specified using byte lengths, or character lengths where the number of bytes is computed for you. You can set up the entire database to use the same length semantics for strings, or specify the settings for individual procedures; this setting is remembered if a procedure is invalidated.
You can now perform bulk SQL operations, such as bulk fetches, using native dynamic SQL (the
EXECUTE IMMEDIATE statement). You can perform bulk insert or update operations that continue despite errors on some rows, then examine the problems after the operation is complete.
Briefly describe new feature.
Improve performance by compiling Oracle-supplied and user-written stored procedures into native executables, using typical C development tools. This setting is saved so that the procedure is compiled the same way if it is later invalidated.
The OCCI API lets you write fast, low-level database applications using C++. It is similar to the existing Oracle Call Interface (OCI) API.
In Oracle9i, application developers no longer need to secure a role by embedding passwords inside applications. They can create application roles and specify which PL/SQL package is authorized to enable the roles. These application roles, those enabled by PL/SQL packages, are called secure application roles.
You can create an application context by entering a command like:
Alternatively, you can use Oracle Policy Manager to create an application context.
You can run external procedure agents (the
EXTPROC entry in
tnsnames.ora) under different instances of Oracle or on entirely separate machines. This lets you configure external procedures more robustly, so that if one external procedure crashes, other external procedures can continue running in a different agent process.