List of Examples
- 2-1 PL/SQL Block Structure
- 2-2 Processing Query Result Rows One at a Time
- 3-1 Valid Case-Insensitive Reference to Quoted User-Defined Identifier
- 3-2 Invalid Case-Insensitive Reference to Quoted User-Defined Identifier
- 3-3 Reserved Word as Quoted User-Defined Identifier
- 3-4 Neglecting Double Quotation Marks
- 3-5 Neglecting Case-Sensitivity
- 3-6 Single-Line Comments
- 3-7 Multiline Comments
- 3-8 Whitespace Characters Improving Source Text Readability
- 3-9 Variable Declaration with NOT NULL Constraint
- 3-10 Variables Initialized to NULL Values
- 3-11 Scalar Variable Declarations
- 3-12 Constant Declarations
- 3-13 Variable and Constant Declarations with Initial Values
- 3-14 Variable Initialized to NULL by Default
- 3-15 Declaring Variable of Same Type as Column
- 3-16 Declaring Variable of Same Type as Another Variable
- 3-17 Scope and Visibility of Identifiers
- 3-18 Qualifying Redeclared Global Identifier with Block Label
- 3-19 Qualifying Identifier with Subprogram Name
- 3-20 Duplicate Identifiers in Same Scope
- 3-21 Declaring Same Identifier in Different Units
- 3-22 Label and Subprogram with Same Name in Same Scope
- 3-23 Block with Multiple and Duplicate Labels
- 3-24 Assigning Values to Variables with Assignment Statement
- 3-25 Assigning Value to Variable with SELECT INTO Statement
- 3-26 Assigning Value to Variable as IN OUT Subprogram Parameter
- 3-27 Assigning Value to BOOLEAN Variable
- 3-28 Concatenation Operator
- 3-29 Concatenation Operator with NULL Operands
- 3-30 Controlling Evaluation Order with Parentheses
- 3-31 Expression with Nested Parentheses
- 3-32 Improving Readability with Parentheses
- 3-33 Operator Precedence
- 3-34 Procedure Prints BOOLEAN Variable
- 3-35 AND Operator
- 3-36 OR Operator
- 3-37 NOT Operator
- 3-38 NULL Value in Unequal Comparison
- 3-39 NULL Value in Equal Comparison
- 3-40 NOT NULL Equals NULL
- 3-41 Changing Evaluation Order of Logical Operators
- 3-42 Short-Circuit Evaluation
- 3-43 Relational Operators in Expressions
- 3-44 LIKE Operator in Expression
- 3-45 Escape Character in Pattern
- 3-46 BETWEEN Operator in Expressions
- 3-47 IN Operator in Expressions
- 3-48 IN Operator with Sets with NULL Values
- 3-49 Equivalent BOOLEAN Expressions
- 3-50 Simple CASE Expression
- 3-51 Simple CASE Expression with WHEN NULL
- 3-52 Searched CASE Expression
- 3-53 Searched CASE Expression with WHEN ... IS NULL
- 3-54 Static Constants
- 3-55 Predefined Inquiry Directives
- 3-56 Displaying Values of PL/SQL Compilation Parameters
- 3-57 PLSQL_CCFLAGS Assigns Value to Itself
- 3-58 Code for Checking Database Version
- 3-59 Compiling Different Code for Different Database Versions
- 3-60 Displaying Post-Processed Source Textsource text
- 3-61 Using Conditional Compilation Directive in the Definition of a Package Specification
- 3-62 Using Conditional Compilation Directive in the Formal Parameter List of a Subprogram
- 4-1 CHAR and VARCHAR2 Blank-Padding Difference
- 4-2 Printing BOOLEAN Values
- 4-3 SQL Statement Invokes PL/SQL Function with BOOLEAN Parameter
- 4-4 PLS_INTEGER Calculation Raises Overflow Exception
- 4-5 Preventing Example 4-4 Overflow
- 4-6 Violating Constraint of SIMPLE_INTEGER Subtype
- 4-7 User-Defined Unconstrained Subtypes Show Intended Use
- 4-8 User-Defined Constrained Subtype Detects Out-of-Range Values
- 4-9 Implicit Conversion Between Constrained Subtypes with Same Base Type
- 4-10 Implicit Conversion Between Subtypes with Base Types in Same Family
- 5-1 IF THEN Statement
- 5-2 IF THEN ELSE Statement
- 5-3 Nested IF THEN ELSE Statements
- 5-4 IF THEN ELSIF Statement
- 5-5 IF THEN ELSIF Statement Simulates Simple CASE Statement
- 5-6 Simple CASE Statement
- 5-7 Searched CASE Statement
- 5-8 EXCEPTION Instead of ELSE Clause in CASE Statement
- 5-9 FOR LOOP Statement Tries to Change Index Value
- 5-10 Outside Statement References FOR LOOP Statement Index
- 5-11 FOR LOOP Statement Index with Same Name as Variable
- 5-12 FOR LOOP Statement References Variable with Same Name as Index
- 5-13 Nested FOR LOOP Statements with Same Index Name
- 5-14 Using Multiple Iteration Controls
- 5-15 FOR LOOP Statements Range Iteration Control
- 5-16 Reverse FOR LOOP Statements Range Iteration Control
- 5-17 Stepped Range Iteration Controls
- 5-18 STEP Clause in FOR LOOP Statement
- 5-19 Simple Step Filter Using FOR LOOP Stepped Range Iterator
- 5-20 Single Expression Iteration Control
- 5-21
VALUES OF
Iteration Control - 5-22
INDICES OF
Iteration Control - 5-23
PAIRS OF
Iteration Control - 5-24 Cursor Iteration Controls
- 5-25 Using Dynamic SQL As An Iteration Control
- 5-26 Using Dynamic SQL As An Iteration Control In a Qualified Expression
- 5-27 Using FOR LOOP Stopping Predicate Clause
- 5-28 Using FOR LOOP Skipping Predicate Clause
- 5-29 NULL Statement Showing No Action
- 5-30 NULL Statement as Placeholder During Subprogram Creation
- 5-31 NULL Statement in ELSE Clause of Simple CASE Statement
- 6-1 Associative Array Indexed by String
- 6-2 Function Returns Associative Array Indexed by PLS_INTEGER
- 6-3 Declaring Associative Array Constant
- 6-4 Varray (Variable-Size Array)
- 6-5 Nested Table of Local Type
- 6-6 Nested Table of Standalone Type
- 6-7 Initializing Collection (Varray) Variable to Empty
- 6-8 Basic Iterator Choice Association in Qualified Expressions
- 6-9 Index Iterator Choice Association in Qualified Expressions
- 6-10 Sequence Iterator Choice Association in Qualified Expressions
- 6-11 Assigning Values to Associative Array Type Variables Using Qualified Expressions
- 6-12 Data Type Compatibility for Collection Assignment
- 6-13 Assigning Null Value to Nested Table Variable
- 6-14 Assigning Set Operation Results to Nested Table Variable
- 6-15 Two-Dimensional Varray (Varray of Varrays)
- 6-16 Nested Tables of Nested Tables and Varrays of Integers
- 6-17 Nested Tables of Associative Arrays and Varrays of Strings
- 6-18 Comparing Varray and Nested Table Variables to NULL
- 6-19 Comparing Nested Tables for Equality and Inequality
- 6-20 Comparing Nested Tables with SQL Multiset Conditions
- 6-21 DELETE Method with Nested Table
- 6-22 DELETE Method with Associative Array Indexed by String
- 6-23 TRIM Method with Nested Table
- 6-24 EXTEND Method with Nested Table
- 6-25 EXISTS Method with Nested Table
- 6-26 FIRST and LAST Values for Associative Array Indexed by PLS_INTEGER
- 6-27 FIRST and LAST Values for Associative Array Indexed by String
- 6-28 Printing Varray with FIRST and LAST in FOR LOOP
- 6-29 Printing Nested Table with FIRST and LAST in FOR LOOP
- 6-30 COUNT and LAST Values for Varray
- 6-31 COUNT and LAST Values for Nested Table
- 6-32 LIMIT and COUNT Values for Different Collection Types
- 6-33 PRIOR and NEXT Methods
- 6-34 Printing Elements of Sparse Nested Table
- 6-35 Identically Defined Package and Local Collection Types
- 6-36 Identically Defined Package and Standalone Collection Types
- 6-37 Declaring Record Constant
- 6-38 Declaring Record Constant
- 6-39 RECORD Type Definition and Variable Declaration
- 6-40 RECORD Type with RECORD Field (Nested Record)
- 6-41 RECORD Type with Varray Field
- 6-42 Identically Defined Package and Local RECORD Types
- 6-43 %ROWTYPE Variable Represents Full Database Table Row
- 6-44 %ROWTYPE Variable Does Not Inherit Initial Values or Constraints
- 6-45 %ROWTYPE Variable Represents Partial Database Table Row
- 6-46 %ROWTYPE Variable Represents Join Row
- 6-47 Inserting %ROWTYPE Record into Table (Wrong)
- 6-48 Inserting %ROWTYPE Record into Table (Right)
- 6-49 %ROWTYPE Affected by Making Invisible Column Visible
- 6-50 Assigning Values to RECORD Type Variables Using Qualified Expressions
- 6-51 Assigning Record to Another Record of Same RECORD Type
- 6-52 Assigning %ROWTYPE Record to RECORD Type Record
- 6-53 Assigning Nested Record to Another Record of Same RECORD Type
- 6-54 SELECT INTO Assigns Values to Record Variable
- 6-55 FETCH Assigns Values to Record that Function Returns
- 6-56 UPDATE Statement Assigns Values to Record Variable
- 6-57 Assigning NULL to Record Variable
- 6-58 Initializing Table by Inserting Record of Default Values
- 6-59 Updating Rows with Record
- 7-1 Static SQL Statements
- 7-2 CURRVAL and NEXTVAL Pseudocolumns
- 7-3 SQL%FOUND Implicit Cursor Attribute
- 7-4 SQL%ROWCOUNT Implicit Cursor Attribute
- 7-5 Explicit Cursor Declaration and Definition
- 7-6 FETCH Statements Inside LOOP Statements
- 7-7 Fetching Same Explicit Cursor into Different Variables
- 7-8 Variable in Explicit Cursor Query—No Result Set Change
- 7-9 Variable in Explicit Cursor Query—Result Set Change
- 7-10 Explicit Cursor with Virtual Column that Needs Alias
- 7-11 Explicit Cursor that Accepts Parameters
- 7-12 Cursor Parameters with Default Values
- 7-13 Adding Formal Parameter to Existing Cursor
- 7-14 %ISOPEN Explicit Cursor Attribute
- 7-15 %FOUND Explicit Cursor Attribute
- 7-16 %NOTFOUND Explicit Cursor Attribute
- 7-17 %ROWCOUNT Explicit Cursor Attribute
- 7-18 Implicit Cursor FOR LOOP Statement
- 7-19 Explicit Cursor FOR LOOP Statement
- 7-20 Passing Parameters to Explicit Cursor FOR LOOP Statement
- 7-21 Cursor FOR Loop References Virtual Columns
- 7-22 Subquery in FROM Clause of Parent Query
- 7-23 Correlated Subquery
- 7-24 Cursor Variable Declarations
- 7-25 Cursor Variable with User-Defined Return Type
- 7-26 Fetching Data with Cursor Variables
- 7-27 Fetching from Cursor Variable into Collections
- 7-28 Variable in Cursor Variable Query—No Result Set Change
- 7-29 Variable in Cursor Variable Query—Result Set Change
- 7-30 Querying a Collection with Static SQL
- 7-31 Procedure to Open Cursor Variable for One Query
- 7-32 Opening Cursor Variable for Chosen Query (Same Return Type)
- 7-33 Opening Cursor Variable for Chosen Query (Different Return Types)
- 7-34 Cursor Variable as Host Variable in Pro*C Client Program
- 7-35 CURSOR Expression
- 7-36 COMMIT Statement with COMMENT and WRITE Clauses
- 7-37 ROLLBACK Statement
- 7-38 SAVEPOINT and ROLLBACK Statements
- 7-39 Reusing SAVEPOINT with ROLLBACK
- 7-40 SET TRANSACTION Statement in Read-Only Transaction
- 7-41 FETCH with FOR UPDATE Cursor After COMMIT Statement
- 7-42 Simulating CURRENT OF Clause with ROWID Pseudocolumn
- 7-43 Declaring Autonomous Function in Package
- 7-44 Declaring Autonomous Standalone Procedure
- 7-45 Declaring Autonomous PL/SQL Block
- 7-46 Autonomous Trigger Logs INSERT Statements
- 7-47 Autonomous Trigger Uses Native Dynamic SQL for DDL
- 7-48 Invoking Autonomous Function
- 8-1 Invoking Subprogram from Dynamic PL/SQL Block
- 8-2 Dynamically Invoking Subprogram with BOOLEAN Formal Parameter
- 8-3 Dynamically Invoking Subprogram with RECORD Formal Parameter
- 8-4 Dynamically Invoking Subprogram with Assoc. Array Formal Parameter
- 8-5 Dynamically Invoking Subprogram with Nested Table Formal Parameter
- 8-6 Dynamically Invoking Subprogram with Varray Formal Parameter
- 8-7 Uninitialized Variable Represents NULL in USING Clause
- 8-8 Native Dynamic SQL with OPEN FOR, FETCH, and CLOSE Statements
- 8-9 Querying a Collection with Native Dynamic SQL
- 8-10 Repeated Placeholder Names in Dynamic PL/SQL Block
- 8-11 DBMS_SQL.RETURN_RESULT Procedure
- 8-12 DBMS_SQL.GET_NEXT_RESULT Procedure
- 8-13 Switching from DBMS_SQL Package to Native Dynamic SQL
- 8-14 Switching from Native Dynamic SQL to DBMS_SQL Package
- 8-15 Setup for SQL Injection Examples
- 8-16 Procedure Vulnerable to Statement Modification
- 8-17 Procedure Vulnerable to Statement Injection
- 8-18 Procedure Vulnerable to SQL Injection Through Data Type Conversion
- 8-19 Bind Variables Guarding Against SQL Injection
- 8-20 Validation Checks Guarding Against SQL Injection
- 8-21 Explicit Format Models Guarding Against SQL Injection
- 9-1 Declaring, Defining, and Invoking a Simple PL/SQL Procedure
- 9-2 Declaring, Defining, and Invoking a Simple PL/SQL Function
- 9-3 Execution Resumes After RETURN Statement in Function
- 9-4 Function Where Not Every Execution Path Leads to RETURN Statement
- 9-5 Function Where Every Execution Path Leads to RETURN Statement
- 9-6 Execution Resumes After RETURN Statement in Procedure
- 9-7 Execution Resumes After RETURN Statement in Anonymous Block
- 9-8 Nested Subprograms Invoke Each Other
- 9-9 Formal Parameters and Actual Parameters
- 9-10 Actual Parameter Inherits Only NOT NULL from Subtype
- 9-11 Actual Parameter and Return Value Inherit Only Range From Subtype
- 9-12 Function Implicitly Converts Formal Parameter to Constrained Subtype
- 9-13 Avoiding Implicit Conversion of Actual Parameters
- 9-14 Parameter Values Before, During, and After Procedure Invocation
- 9-15 OUT and IN OUT Parameter Values After Exception Handling
- 9-16 OUT Formal Parameter of Record Type with Non-NULL Default Value
- 9-17 Aliasing from Global Variable as Actual Parameter
- 9-18 Aliasing from Same Actual Parameter for Multiple Formal Parameters
- 9-19 Aliasing from Cursor Variable Subprogram Parameters
- 9-20 Procedure with Default Parameter Values
- 9-21 Function Provides Default Parameter Value
- 9-22 Adding Subprogram Parameter Without Changing Existing Invocations
- 9-23 Equivalent Invocations with Different Notations in Anonymous Block
- 9-24 Equivalent Invocations with Different Notations in SELECT Statements
- 9-25 Resolving PL/SQL Procedure Names
- 9-26 Overloaded Subprogram
- 9-27 Overload Error Causes Compile-Time Error
- 9-28 Overload Error Compiles Successfully
- 9-29 Invoking Subprogram in Example 9-28 Causes Compile-Time Error
- 9-30 Correcting Overload Error in Example 9-28
- 9-31 Invoking Subprogram in Example 9-30
- 9-32 Package Specification Without Overload Errors
- 9-33 Improper Invocation of Properly Overloaded Subprogram
- 9-34 Implicit Conversion of Parameters Causes Overload Error
- 9-35 Recursive Function Returns n Factorial (n!)
- 9-36 Recursive Function Returns nth Fibonacci Number
- 9-37 Declaring and Defining Result-Cached Function
- 9-38 Result-Cached Function Returns Configuration Parameter Setting
- 9-39 Result-Cached Function Handles Session-Specific Settings
- 9-40 Result-Cached Function Handles Session-Specific Application Context
- 9-41 Caching One Name at a Time (Finer Granularity)
- 9-42 Caching Translated Names One Language at a Time (Coarser Granularity)
- 9-43 Database Link in a DR Unit
- 9-44 PL/SQL Anonymous Block Invokes External Procedure
- 9-45 PL/SQL Standalone Procedure Invokes External Procedure
- 10-1 Trigger Uses Conditional Predicates to Detect Triggering Statement
- 10-2 INSTEAD OF Trigger
- 10-3 INSTEAD OF Trigger on Nested Table Column of View
- 10-4 Compound Trigger Logs Changes to One Table in Another Table
- 10-5 Compound Trigger Avoids Mutating-Table Error
- 10-6 Foreign Key Trigger for Child Table
- 10-7 UPDATE and DELETE RESTRICT Trigger for Parent Table
- 10-8 UPDATE and DELETE SET NULL Trigger for Parent Table
- 10-9 DELETE CASCADE Trigger for Parent Table
- 10-10 UPDATE CASCADE Trigger for Parent Table
- 10-11 Trigger Checks Complex Constraints
- 10-12 Trigger Enforces Security Authorizations
- 10-13 Trigger Derives New Column Values
- 10-14 Trigger Logs Changes to EMPLOYEES.SALARY
- 10-15 Conditional Trigger Prints Salary Change Information
- 10-16 Trigger Modifies CLOB Columns
- 10-17 Trigger with REFERENCING Clause
- 10-18 Trigger References OBJECT_VALUE Pseudocolumn
- 10-19 BEFORE Statement Trigger on Sample Schema HR
- 10-20 AFTER Statement Trigger on Database
- 10-21 Trigger Monitors Logons
- 10-22 INSTEAD OF CREATE Trigger on Schema
- 10-23 Trigger Invokes Java Subprogram
- 10-24 Trigger Cannot Handle Exception if Remote Database is Unavailable
- 10-25 Workaround for Example 10-24
- 10-26 Trigger Causes Mutating-Table Error
- 10-27 Update Cascade
- 10-28 Viewing Information About Triggers
- 11-1 Simple Package Specification
- 11-2 Passing Associative Array to Standalone Subprogram
- 11-3 Matching Package Specification and Body
- 11-4 Creating SERIALLY_REUSABLE Packages
- 11-5 Effect of SERIALLY_REUSABLE Pragma
- 11-6 Cursor in SERIALLY_REUSABLE Package Open at Call Boundary
- 11-7 Separating Cursor Declaration and Definition in Package
- 11-8 ACCESSIBLE BY Clause
- 11-9 Creating emp_admin Package
- 12-1 Setting Value of PLSQL_WARNINGS Compilation Parameter
- 12-2 Displaying and Setting PLSQL_WARNINGS with DBMS_WARNING Subprograms
- 12-3 Single Exception Handler for Multiple Exceptions
- 12-4 Locator Variables for Statements that Share Exception Handler
- 12-5 Naming Internally Defined Exception
- 12-6 Anonymous Block Handles ZERO_DIVIDE
- 12-7 Anonymous Block Avoids ZERO_DIVIDE
- 12-8 Anonymous Block Handles ROWTYPE_MISMATCH
- 12-9 Redeclared Predefined Identifier
- 12-10 Declaring, Raising, and Handling User-Defined Exception
- 12-11 Explicitly Raising Predefined Exception
- 12-12 Reraising Exception
- 12-13 Raising User-Defined Exception with RAISE_APPLICATION_ERROR
- 12-14 Exception that Propagates Beyond Scope is Handled
- 12-15 Exception that Propagates Beyond Scope is Not Handled
- 12-16 Exception Raised in Declaration is Not Handled
- 12-17 Exception Raised in Declaration is Handled by Enclosing Block
- 12-18 Exception Raised in Exception Handler is Not Handled
- 12-19 Exception Raised in Exception Handler is Handled by Invoker
- 12-20 Exception Raised in Exception Handler is Handled by Enclosing Block
- 12-21 Exception Raised in Exception Handler is Not Handled
- 12-22 Exception Raised in Exception Handler is Handled by Enclosing Block
- 12-23 Displaying SQLCODE and SQLERRM Values
- 12-24 Exception Handler Runs and Execution Ends
- 12-25 Exception Handler Runs and Execution Continues
- 12-26 Retrying Transaction After Handling Exception
- 13-1 Specifying that Subprogram Is To Be Inlined
- 13-2 Specifying that Overloaded Subprogram Is To Be Inlined
- 13-3 Specifying that Subprogram Is Not To Be Inlined
- 13-4 PRAGMA INLINE ... 'NO' Overrides PRAGMA INLINE ... 'YES'
- 13-5 Nested Query Improves Performance
- 13-6 NOCOPY Subprogram Parameters
- 13-7 DELETE Statement in FOR LOOP Statement
- 13-8 DELETE Statement in FORALL Statement
- 13-9 Time Difference for INSERT Statement in FOR LOOP and FORALL Statements
- 13-10 FORALL Statement for Subset of Collection
- 13-11 FORALL Statements for Sparse Collection and Its Subsets
- 13-12 Handling FORALL Exceptions Immediately
- 13-13 Handling FORALL Exceptions After FORALL Statement Completes
- 13-14 Showing Number of Rows Affected by Each DELETE in FORALL
- 13-15 Showing Number of Rows Affected by Each INSERT SELECT in FORALL
- 13-16 Bulk-Selecting Two Database Columns into Two Nested Tables
- 13-17 Bulk-Selecting into Nested Table of Records
- 13-18 SELECT BULK COLLECT INTO Statement with Unexpected Results
- 13-19 Cursor Workaround for Example 13-18
- 13-20 Second Collection Workaround for Example 13-18
- 13-21 Limiting Bulk Selection with ROWNUM, SAMPLE, and FETCH FIRST
- 13-22 Bulk-Fetching into Two Nested Tables
- 13-23 Bulk-Fetching into Nested Table of Records
- 13-24 Limiting Bulk FETCH with LIMIT
- 13-25 Returning Deleted Rows in Two Nested Tables
- 13-26 DELETE with RETURN BULK COLLECT INTO in FORALL Statement
- 13-27 DELETE with RETURN BULK COLLECT INTO in FOR LOOP Statement
- 13-28 Anonymous Block Bulk-Binds Input Host Array
- 13-29 Creating and Invoking Pipelined Table Function
- 13-30 Pipelined Table Function Transforms Each Row to Two Rows
- 13-31 Fetching from Results of Pipelined Table Functions
- 13-32 Pipelined Table Function with Two Cursor Variable Parameters
- 13-33 Pipelined Table Function as Aggregate Function
- 13-34 Pipelined Table Function Does Not Handle NO_DATA_NEEDED
- 13-35 Pipelined Table Function Handles NO_DATA_NEEDED
- 13-36 Skip_col Polymorphic Table Function Example
- 13-37 To_doc Polymorphic Table Function Example
- 13-38 Implicit_echo Polymorphic Table Function Example
- 14-1 Restricting Access to Top-Level Procedures in the Same Schema
- 14-2 Restricting Access to a Unit Name of Any Kind
- 14-3 Restricting Access to a Stored Procedure
- 14-4 Nested, Labeled Basic LOOP Statements with EXIT WHEN Statements
- 14-5 Nested, Unabeled Basic LOOP Statements with EXIT WHEN Statements
- 14-6 External Function Example
- 14-7 CONTINUE Statement in Basic LOOP Statement
- 14-8 CONTINUE WHEN Statement in Basic LOOP Statement
- 14-9 Marking a Single Basic Block as Infeasible to Test for Coverage
- 14-10 Marking a Line Range as Infeasible to Test for Coverage
- 14-11 Marking Entire Units or Individual Subprograms as Infeasible to Test for Coverage
- 14-12 Marking Internal Subprogram as Infeasible to Test for Coverage
- 14-13 Enabling the Deprecation Warnings
- 14-14 Deprecation of a PL/SQL Package
- 14-15 Deprecation of a PL/SQL Package with a Custom Warning
- 14-16 Deprecation of a PL/SQL Procedure
- 14-17 Deprecation of an Overloaded Procedure
- 14-18 Deprecation of a Constant and of an Exception
- 14-19 Using Conditional Compilation to Deprecate Entities in Some Database Releases
- 14-20 Deprecation of an Object Type
- 14-21 Deprecation of a Member Function in an Object Type Specification
- 14-22 Deprecation of Inherited Object Types
- 14-23 Deprecation Only Applies to Top Level Subprogram
- 14-24 Misplaced DEPRECATE Pragma
- 14-25 Mismatch of the Element Name and the DEPRECATE Pragma Argument
- 14-26 Basic LOOP Statement with EXIT Statement
- 14-27 Basic LOOP Statement with EXIT WHEN Statement
- 14-28 EXIT WHEN Statement in FOR LOOP Statement
- 14-29 EXIT WHEN Statement in Inner FOR LOOP Statement
- 14-30 CONTINUE WHEN Statement in Inner FOR LOOP Statement
- 14-31 GOTO Statement
- 14-32 Incorrect Label Placement
- 14-33 GOTO Statement Goes to Labeled NULL Statement
- 14-34 GOTO Statement Transfers Control to Enclosing Block
- 14-35 GOTO Statement Cannot Transfer Control into IF Statement
- 14-36 Emp_doc: Using a Scalar Macro to Convert Columns into a JSON or XML Document
- 14-37 Env: Using a Scalar Macro in a Scalar Expression
- 14-38 Budget : Using a Table Macro in a Table Expression
- 14-39 Take: Using a Table Macro with a Polymorphic View
- 14-40 Range : Using a Table Macro in a Table Expression
- 14-41 Enabling the
PLW-6009
Warning - 14-42 SUPPRESSES_WARNING_6009 Pragma in a Procedure
- 14-43 SUPPRESSES_WARNING_6009 Pragma in a Function
- 14-44 SUPPRESSES_WARNING_6009 Pragma in an Overloaded Subprogram in a Package Specification
- 14-45 SUPPRESSES_WARNING_6009 Pragma in a Forward Declaration in a Package Body
- 14-46 SUPPRESSES_WARNING_6009 Pragma in Object Type Methods
- 14-47 WHILE LOOP Statements
- 15-1 Recompiling a Function
- 15-2 Recompiling a Library
- 15-3 Recompiling a Package
- 15-4 Recompiling a Procedure
- 15-5 Disabling Triggers
- 15-6 Enabling Triggers
- 15-7 Adding a Member Function
- 15-8 Adding a Collection Attribute
- 15-9 Increasing the Number of Elements of a Collection Type
- 15-10 Increasing the Length of a Collection Type
- 15-11 Recompiling a Type
- 15-12 Recompiling a Type Specification
- 15-13 Evolving and Resetting an ADT
- 15-14 Creating a Function
- 15-15 Creating Aggregate Functions
- 15-16 Package Procedure in a Function
- 15-17 Creating a Library
- 15-18 Specifying an External Procedure Agent
- 15-19 Creating the Specification for the emp_mgmt Package
- 15-20 Creating the emp_mgmt Package Body
- 15-21 Creating a Procedure
- 15-22 Creating an External Procedure
- 15-23 ADT Examples
- 15-24 Creating a Subtype
- 15-25 Creating a Type Hierarchy
- 15-26 Creating a Varray Type
- 15-27 Creating a Non-Persistable Nested Array
- 15-28 Creating a Non-Persistable Object Type
- 15-29 Creating a Non-Persistable Varray
- 15-30 Creating a Nested Table Type
- 15-31 Creating a Nested Table Type Containing a Varray
- 15-32 Constructor Example
- 15-33 Creating a Member Method
- 15-34 Creating a Static Method
- 15-35 Dropping a Function
- 15-36 Dropping a Library
- 15-37 Dropping a Package
- 15-38 Dropping a Procedure
- 15-39 Dropping a Trigger
- 15-40 Dropping an ADT
- 15-41 Dropping an ADT Body
- A-1 SQL File with Two Wrappable PL/SQL Units
- A-2 Wrapping File with PL/SQL Wrapper Utility
- A-3 Running Wrapped File and Viewing Wrapped PL/SQL Units
- A-4 Creating Wrapped Package Body with CREATE_WRAPPED Procedure
- A-5 Viewing Package with Wrapped Body and Invoking Package Procedure
- B-1 Qualified Names
- B-2 Variable Name Interpreted as Column Name Causes Unintended Result
- B-3 Fixing Example B-2 with Different Variable Name
- B-4 Fixing Example B-2 with Block Label
- B-5 Subprogram Name for Name Resolution
- B-6 Inner Capture of Column Reference
- B-7 Inner Capture of Attribute Reference
- B-8 Qualifying ADT Attribute References
- B-9 Qualifying References to Row Expressions