Table of Contents
- List of Tables
- Title and Copyright Information
- Preface
- 1 Changes in This Release for Oracle SQLJ Developer’s Guide
- 2 Getting Started
- 3 Introduction to SQLJ
-
4
Key Programming Considerations
- Selection of the JDBC Driver
- Connection Considerations
- NULL-Handling
- Exception-Handling Basics
- Basic Transaction Control
- Summary: First Steps in SQLJ Code
- Oracle-Specific Code Generation (No Profiles)
- ISO Standard Code Generation
- Oracle-Specific Code Generation Versus ISO Standard Code Generation
- Requirements and Restrictions for Naming
- Considerations for SQLJ in the Middle Tier
-
5
Basic Language Features
- Overview of SQLJ Declarations
- Overview of SQLJ Executable Statements
- Java Host, Context, and Result Expressions
- Single-Row Query Results: SELECT INTO Statements
- Multirow Query Results: SQLJ Iterators
- Assignment Statements (SET)
- Stored Procedure and Function Calls
-
6
Type Support
- Supported Types for Host Expressions
-
Support for Streams
- General Use of SQLJ Streams
- Key Aspects of Stream Support Classes
- Using SQLJ Streams to Send Data
- Retrieving Data into Streams: Precautions
- Using SQLJ Streams to Retrieve Data
- Stream Class Methods
- Examples of Retrieving and Processing Stream Data
- SQLJ Stream Objects as Output Parameters and Function Return Values
- Support for JDBC 2.0 LOB Types and Oracle Type Extensions
-
7
Objects, Collections, and OPAQUE Types
- Oracle Objects and Collections
- Custom Java Classes
- User-Defined Types
- Strongly Typed Objects and References in SQLJ Executable Statements
-
Strongly Typed Collections in SQLJ Executable Statements
- Accessing Nested Tables: TABLE syntax and CURSOR syntax
- Inserting a Row that Includes a Nested Table
- Selecting a Nested Table into a Host Expression
- Manipulating a Nested Table Using TABLE Syntax
- Selecting Data from a Nested Table Using a Nested Iterator
- Selecting a VARRAY into a Host Expression
- Inserting a Row that Includes a VARRAY
- Serialized Java Objects
- Weakly Typed Objects, References, and Collections
- Oracle OPAQUE Types
-
8
Advanced Language Features
-
Connection Contexts
- Connection Context Concepts
- Connection Context Logistics
- Declaring and Using a Connection Context Class
- Example of Multiple Connection Contexts
- Implementation and Functionality of Connection Context Classes
- Using the IMPLEMENTS Clause in Connection Context Declarations
- Semantics-Checking of Your Connection Context Usage
- Standard Data Source Support
- SQLJ-Specific Data Sources
- SQLJ-Specific Connection JavaBeans for JavaServer Pages
- SQLJ Support for Global Transactions
- Connecting to PDBs
- Execution Contexts
- Multithreading in SQLJ
- Iterator Class Implementation and Advanced Functionality
- Advanced Transaction Control
- SQLJ and JDBC Interoperability
- Support for Dynamic SQL
- Using Stored Outlines
- Using Plan Baselines
-
Connection Contexts
- 9 Translator Command Line and Options
- 10 Translator and Run-Time Functionality
- 11 Performance and Debugging
-
A
Customization and Specialized Customizers
- More About Profiles
- More About Profile Customization
-
Customization Options and Choosing a Customizer
- Overview of Customizer Harness Options
- General Customizer Harness Options
- Customizer Harness Options for Connections
- Customizer Harness Options that Invoke Specialized Customizers
- Overview of Customizer-Specific Options
-
Oracle Customizer Options
- Options Supported by Oracle Customizer
- Oracle Customizer Version Compatibility Option (compat)
- Oracle Customizer Force Option (force)
- Oracle Customizer Column Definition Option (optcols)
- Oracle Customizer Parameter Definition Option (optparams)
- Oracle Customizer Parameter Default Size Option (optparamdefaults)
- Oracle Customizer CHAR Comparisons with Blank Padding (fixedchar)
- Oracle Customizer Show-SQL Option (showSQL)
- Oracle Customizer Statement Cache Size Option (stmtcache)
- Oracle Customizer Summary Option (summary)
- Options for Other Customizers
- SQLJ Translator Options for Profile Customization
- JAR Files for Profiles
- SQLCheckerCustomizer for Profile Semantics-Checking
- AuditorInstaller Customizer for Debugging
- Index