Introduction to Oracle10g PL/SQL Programming
Summary
 The Oracle® 10g release has greatly enhanced the features and functionality of PL/SQL. Students will
learn the fundamentals of the PL/SQL programming language. Students will write stored procedures,
functions, packages, and triggers, and implement complex business rules in Oracle. Students will learn
programming, management, and security issues of working with PL/SQL program units. Programming
topics will include the built-in packages that come with Oracle, the creation of triggers, and stored
procedure features.
 
Prerequisites
 A solid understanding of SQL and 3GL programming is required. It is recommended the
student understand Oracle 10g SQL features.
Course Objectives
On completion of this course, the student should be able to
         Gain a working knowledge of programming Oracle 10g databases
   using the PL/SQL language
         Learn the use of stored procedures, functions, packages and
   triggers
         Understand management and security issues in working with
   PL/SQL
 
Intended Audience
Application developers and database administrators
Length
3 Days
Format
Instructor-led course, with practical computer-based exercises.
Course Outline
     1.      Triggers
  
       Beyond Declarative Integrity
       Triggers
       Types of Triggers
       Row-Level Triggers
       Trigger Predicates
       Trigger COnditions
       Using SEQUENCEs
       Cascading Triggers and Mutating Tables
       Generating an Error
       Maintaining Triggers
  
                          
   2. PL/SQL Variables and Datatypes
   
      Anonymous Blocks
      Declaring Variables
      Datatypes
      Subtypes
      Character Data
      Dates and Timestamps
      Date Intervals
      Anchored Types
      Assignment and Conversions
      Selecting into a Variable
      Returning into a Variable
      3. PL/SQL Syntax and Logic
      Conditional Statements - IF/THEN
      Conditional Statements - CASE
      Comments and Labels
      Loops
      WHILE and FOR Loops
      SQL in PL/SQL
      Local Procedures and Functions
      4. Stored Procedures and
      Stored Subprograms
      Creating a Stored Procedure
      Procedure Calls and Parameters
      Parameter Modes
      Creating a Stored Function
      Stored Functions and SQL
      Invoker's Rights
      5. Exception Handling
      SQLCODE and SQLERRM
      Exception Handlers
      Nesting Blocks
      Scope and Name Resolution
      Declaring and Raising Named
          Exceptions
     User-Defined Exceptions
     6. Records, Collections, and User-
     Record Variables
  
   Using the %ROWTYPE
          Attribute
  
   VARRAY and Nested TABLE
          Collections
  
   Using Nested TABLEs
  
   Using VARRAYs
  
   Collection in Database Tables
  
   Associative Array Collections
  
   Collection Methods
  
   Iterating Through Collections
 
   7. Cursors
		Multi-Row Queries
		Declaring and Opening Cursors
		Fetching Rows
		Closing Cursors
		The Cursor FOR Loop
		FOR UPDATE Cursors
		Cursor Parameters
		The Implicit (SQL) Cursor
   8. Bulk Operations
     	Bulk Binding
     	BULK COLLECT Clause
     	FORALL Statement
     	FORALL Variations
     	Bulk Returns
     	Bulk Fetching with Cursors
   9. Using Packages
      	Packages
      	Oracle-Supplied Packages
      	The DBMS_OUTPUT Package
      	The DBMS_UTILITY Package
      	The UTL_FILE Package
      	Creating Pipes with DBMS_PIPE
      	Writing to and Reading from a Pipe
      	The DBMS_METADATA Package
      	XML Packages
      	Networking Packages
      	Other Supplied Packages
   10. Creating Packages
	 	Structure of a Package
	 	The Package Interface and
        Implementation
		Package Variables and Package State
		Overloading Package Functions and
        Procedures
		Forward Declarations
		Strong REF CURSOR Variables
		Weak REF CURSOR Variables
   11. Working with LOBs
		Large Object Types
		Oracle Directories
		LOB Locators
		Internal LOBs
		  External LOBs
		    Temporary LOBs
		      The DBMS_LOB Package
     12. Maintaining PL/SQL Code
          Privileges for Stored Programs
  	  Data Dictionary
  	    PL/SQL Stored Program
  Compilation
  	  Conditional Compilation
  	    Compile-Time Warnings
  	      The PL/SQL Execution
          Environment
  	  Dependencies and Validation
  	    Maintaining Stored Programs
     Appendix A - Dynamic SQL
       Generating SQL at Runtime
         Native Dynamic SQL vs.
          DBMS_SQL Package
       The EXECUTE IMMEDIATE
          Statement
  	  Using Bind Variables
  	    Multi-row Dynamic Queries
  	    Bulk Operations with Dynamic
          SQL
  	  Using DBMS_SQL
      DBMS_SQL Subprograms
     Appendix B - PL/SQL
          Versions, Datatypes,
          and Language Limits
  
   Appendix C - Oracle10g
          Supplied Packages
 
Hardware and Software Requirements
   Course exercises require Oracle 10g running on a Microsoft Windows,
   Linux, or multi-user UNIX system.  See the appropriate course Setup
   Guide for details.
   A good minimal hardware profile for this course would have a Pentium
   500-MHz or equivalent CPU, 512 MB of RAM, and at least 4 GB of free
   disk space for the Oracle installation.
 
Notice:  Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 3
Notice:  Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 4
Notice:  Undefined variable: REMOTE_USER in /var/www/datadeliverance/inc/trademarks.inc on line 7
Notice:  Undefined index: HTTP_REFERER in /var/www/datadeliverance/inc/trademarks.inc on line 7
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
PL/SQL and SQL*Plus are trademarks or registered trademarks of Oracle
Corporation.  Microsoft is either a registered trademark or trademark of Microsoft
Corporation in the United States and/or other countries.  MVS is a registered
trademark of the International Business Machines Corp. in the U.S. or other
countries or both.  Motif, OSF/1, UNIX, and the "X Device" are registered
trademarks and IT DialTone and The Open Group are trademarks of The Open Group
in the U.S. and other countries.  All other trademarks are the property of
their respective owners.