Course Topics: Introduction Describing the Life Cycle Development Phases Defining a Relational Database Discussing the Theoretical, Conceptual, and Physical Aspects of a Relational Database Describing How a Relational Database Management System (RDBMS) Is Used to Manage a Relational Database Describing the Oracle Implementation of Both the RDBMS and the Object Relational Database Management System (ORDBMS) Describing How SQL Is Used in the Oracle Product Set Writing a Basic SQL Statement Describing the SQL Select Capabilities Executing a Basic Select Statement with the Mandatory Clauses Differentiating Between SQL and iSQL*Plus Commands Restricting and Sorting Data Limiting the Rows Retrieved by a Query Sorting the Rows Retrieved by a Query Single Row Functions Describing Various Types of Functions Available in SQL Using a Variety of Character, Number, and Date Functions in SELECT Statements Explaining What the Conversion Functions Are and How They Are Used Using Control Statements Displaying Data from Multiple Tables Writing SELECT Statements to Access Data from More Than One Table Describing the Cartesian Product Describing and Using the Different Types of Joins Writing Joins Using the Tips Provided Aggregating Data by Using Group Functions Identifying the Different Group Functions Available Explaining the Use of Group Functions Grouping Data by Using the GROUP BY Clause Writing Subqueries Describing the Types of Problems That Subqueries Can Solve Describing Subqueries Listing the Types of Subqueries Writing Single-Row and Multi-Row Subqueries Describing and Explaining the Behavior of Subqueries When NULL Values Are Retrieved Producing Readable Output with iSQL*Plus Producing Queries That Require an Input Variable Customizing the iSQL*Plus Environment Producing More Readable Output Creating and Executing Script Files Manipulating Data Describing Each Data Manipulation Language (DML) Command Inserting Rows into a Table Updating Rows in a Table Deleting Rows from a Table Merging Rows into a Table Controlling Transactions Describing Transaction Processing Describing Read Consistency and Implicit and Explicit Locking Creating and Managing Tables Describing the Main Database Objects Creating Tables Describing the Oracle Data Types Altering Table Definitions Dropping, Renaming, and Truncating Tables Including Constraints Describing Constraints Creating and Maintaining Constraints Creating Views Describing Views and Their Uses Creating a View Retrieving Data by Means of a View Inserting, Updating, and Deleting Data Through Views Dropping Views Altering the Definition of a View Inline Views Top 'N' Analysis Other Database Objects Creating, Maintaining, and Using Sequences Creating and Maintaining Indexes Creating Private and Public Synonyms Controlling User Access Understanding the Concepts of Users, Roles, and Privileges Granting and Revoking Object Privileges Creating Roles and Granting Privileges to Roles Creating Synonyms for Ease of Table Access SQL Workshop Applying Techniques Learned in This Course Preparing for Future Oracle Courses Using Set Operators Describing the Set Operators Obeying the Set Operators Rules and Guidelines Using a Set Operator to Combine Multiple Queries into a Single Subquery Controlling the Order of Rows Returned Oracle 9i Datetime Functions Using DATETIME Functions Using the NVL2 Function to Handle NULL Values Enhancements to the GROUP BY Clause Using ROLLUP as an Extension to the GROUP BY Clause to Produce Subtotal Values Using CUBE as an Extension to the GROUP BY Clause to Produce Cross-Tabulation Values Using the GROUPING Function to Identify the Row Values Created by ROLLUP or CUBE Operators Using GROUPING SETS to Produce a Single Result Set That Is Equivalent to a UNION ALL Approach Using the WITH Clause Advanced Subqueries Multiple-Column Subqueries Writing a Subquery in the FROM Clause Writing and describing Correlated Subquery Using EXISTS and NOT EXISTS Operators Updating and Deleting Rows Using Correlated Subqueries Using Scalar Subqueries in SQL Hierarchical Retrieval Discussing the Benefits of the Hierarchical Query Ordering the Rows Retrieved by a Query in a Hierarchical Manner Formatting Hierarchical Data so That It Is Easy to Read Excluding Branches from the Tree Structure Oracle9i Extensions to DML and DDL Statements Discussing Multitable Inserts Creating and Using External Tables Naming the Index and Using the CREATE INDEX Command at the Time of Creating Primary Key Constraint PL/SQL Describing PL/SQL Describing the Use of PL/SQL for the Developer and the Database Administrator Explaining the Benefits of PL/SQL PL/SQL program constructs PL/SQL anonymous block structure Subprogram block structure Course objectives and overview Declaring Variables Recognizing the Basic PL/SQL Block and Its Sections Describing the Significance of Variables in PL/SQL Distinguishing Between PL/SQL and Non-PL/SQL Variables Declaring Variables and Constants Executing a PL/SQL Block Writing Executable Statements Recognizing the Significance of the Executable Section Writing Statements Within the Executable Section Describing the Rules of Nested Blocks Executing and Testing a PL/SQL Block Using Coding Conventions Interacting with the Oracle Server Writing a Successful SELECT Statement in PL/SQL Declaring the Data type and Size of a PL/SQL Variable Dynamically Writing Data Manipulation Language (DML) Statements in PL/SQL Controlling Transactions in PL/SQL Determining the Outcome of SQL DML Statements Writing Control Structures Identifying the Uses and Types of Control Structures Constructing an IF Statement Constructing and Identifying Different Loop Statements Controlling Block Flow Using Nested Loops and Labels Using Logic Tables Working with Composite Data types Creating User-Defined PL/SQL Records Creating a PL/SQL Table Creating a PL/SQL Table of Records Differentiating Among Records, Tables, and Tables of Records Writing Explicit Cursors Using a PL/SQL Record Variable Distinguishing Between the Implicit and Explicit Cursor Writing a Cursor FOR Loop Advanced Explicit Cursor Concepts Writing a Cursor that Uses Parameters Determining When a FOR UPDATE Clause in a Cursor Is Required Using a PL/SQL Table Variable Using a PL/SQL Table of Records Handling Exceptions Defining PL/SQL Exceptions Recognizing Unhandled Exceptions Listing and Using Different Types of PL/SQL Exception Handlers Trapping Unanticipated Errors Describing the Effect of Exception Propagation in Nested Blocks Customizing PL/SQL Exception Messages Creating Procedures Describe the uses of procedures Create procedures Create procedures with arguments Invoke a procedure Remove a procedure Creating Functions Describe the uses of functions Create a function Invoke a function Remove a function Differentiate between a procedure and a function Managing Subprograms Describe system privilege requirements Describe object privilege requirements Query the relevant data dictionary views Debug subprograms Creating Packages Describe packages and list their possible components Create packages that include public and private subprograms, as well as global and local variables Invoke objects in a package Remove packages More Package Concepts Write packages that use the overloading feature of PL/SQL Avoid errors with mutually referential subprograms Initialize variables with a one-time-only procedure Specify the purity level of packaged functions Describe the persistent state of packaged variables, cursors, tables, and records Query the relevant data dictionary views Using Oracle-Supplied Packages Overview of Oracle-supplied packages View examples of some supplied packages Write dynamic SQL Creating Database Triggers Describe different types of triggers Describe database triggers and their use Create database triggers Describe database trigger firing rules Drop database triggers More Trigger Concepts Create triggers that fire when certain database actions occur List some of the limitations of database triggers Determine when to use database triggers or Oracle Server features Create triggers by using alternative events (notINSERT/UPDATE/DELETE) Create triggers by using alternative levels (not STATEMENT/ROW) Query the relevant data dictionary views Managing Dependencies Overview of object dependencies Manage PL/SQL objects for recompilation Manipulating Large Objects Compare and contrast LONG/RAW/LONG RAW with large objects (LOBs) Understand LOBs Manage binary large file objects (BFILEs) Use PL/SQL with an LOB Create a table with LOB columns Manipulate LOBs Use DBMS_LOB Oracle-supplied packages Create a temporary LOB Introduction to Oracle Forms Developer and Oracle Forms Services Internet Computing Solutions What Is the Oracle9i Internet Platform? Oracle9iAS Architecture and Components Forms Services Architecture Oracle9iDS Components Oracle9i Forms Developer Key Features Forms Builder Components Navigating the Forms Builder Interface Running a Forms Developer Application Running a Form Web Form Tester Starting a Run Time Session What are the Forms Servlet and Listener Servlet? What Is the Forms Client? Defining Forms Environment Variables What You See at Run Time Identifying the Data Elements Working in the Forms Developer Environment Forms Builder Key Features Forms Developer Executables Forms Builder, Forms Compiler Invoking Forms Executables Forms Builder Module Types Forms Builder Module Object Hierarchy Testing a Form with the Run Form button Starting OC4J Creating a Basic Form Module Creating a New Form Module Creating and modifying a New Data Block Modifying the Layout Template Forms Saving and Compiling a Form Module Deploying a Form Module Moving the Form to the Middle Tier Generating on the Middle Tier Working with Data Blocks and Frames Managing Object Properties Re-entrant Wizards Layout Editor Property Palette Controlling the Behavior of Data Blocks Setting Navigation and Database Properties Controlling the Appearance of Data Blocks Setting Record, Scrollbar and Frame Properties Working with Text Items Creating a Text Item Modifying Appearance Controlling the Data of a Text Item Altering the Navigational Behavior of a Text Item Enhancing the Relationship between Text Item and Database Adding Functionality Displaying Helpful Messages Creating LOVs and Editors LOVs and Record Groups Creating an LOV LOV Properties Creating an Editor Setting Editor Properties Associating an Editor with a Text Item Creating Additional Input Items Creating a Check Box Setting Check Box Properties Creating a List Item Setting List Item Properties Creating a Radio Group Setting Radio Group Properties Creating Noninput Items Creating a Display Item Creating an Image Item Setting Image Item Properties Creating a Push Button Setting Button Properties Creating a Calculated Item Setting Calculated Item Properties Creating a Hierarchical Tree Item Creating Windows and Content Canvases What Are Windows and Canvases? Relationship between Windows and Content Canvases Displaying a Form Module in Multiple Windows Creating a Window Setting Window Properties Displaying a Form Module on Multiple Layouts Creating a New Content Canvas Setting Content Canvas Properties Working with Other Canvas Types Overview of Canvas Types Creating a Stacked Canvas Setting Stacked Canvas Properties Setting Toolbar Properties Creating a Toolbar Canvas Creating a Tab Canvas Setting Tab Canvas Properties Introduction to Triggers Trigger Components Type, Code and Scope Trigger Execution Hierarchy Producing Triggers Creating Triggers Setting Trigger Properties PL/SQL Editor Features Database Trigger Editor Features Writing Trigger Code Adding Functionality with Built-in Subprograms Using Triggers Debugging Triggers The Debugging Process The Debug Console Call Stack Variables Watch List Form Values PL/SQL Packages Global/System Variables Adding Functionality to Items Item Interaction Triggers Defining Functionality for Input Items Interacting with Check Boxes Changing List Items at Run Time Defining Functionality for Noninput Items Displaying LOVs from Buttons Populating Image Items Populating Hierarchical Trees Runtime Messages and Alerts Runtime Messages and Alerts Overview Built-Ins and Handling Errors Controlling System Messages The FORM_TRIGGER_FAILURE Exception Triggers for Intercepting System Messages Creating and Controlling Alerts Handling Errors Raised by the Oracle Database Server Query Triggers Query Processing Overview SELECT Statements Issued During Query Processing WHERE and ORDER BY clauses The ONETIME_WHERE property Writing Query Triggers Query Array Processing Coding Triggers for Enter-Query Mode Overriding Default Query Processing Validation Validation Process Controlling Validation Using Properties Form-level Properties Block-level Properties Item-level Properties Controlling Validation Using Triggers When-Validate-Item Trigger When-Validate-Record Trigger Navigation Navigation Overview Understanding Internal Navigation Controlling Navigation Using Object Properties Writing Navigation Triggers Using Pre- and Post- Triggers Using When-New-<object>-Instance Triggers The Navigation Trap Using Navigation Built-Ins in Triggers Transaction Processing Transaction Processing Overview The Commit Sequence of Events Characteristics of Commit Triggers Common Uses of Commit Triggers The Life of an Update Delete Validation Assigning Sequence Numbers Keeping an Audit Trail Writing Flexible Code Using System Variables for Flexible Coding Using Built-in Subprograms for Flexible Coding Referencing Objects by Internal ID Referencing Items Indirectly Sharing Objects and Code Benefits of Reusable Objects and Code What Are Property Classes? Creating a Property Class Inheriting from a Property Classes What Are Object Groups? Creating and Using Object Groups Copying and Subclassing Objects and Code What is an Object Library