SECTION1: INTRODUCTION
- Describe the features of Oracle Database 12c
- Describe the salient features of Oracle Cloud 12c
- Explain the theoretical and physical aspects of a relational database
- Describe Oracle servers implementation of RDBMS and object relational database management system (ORDBMS)
SECTION2: BASIC DATABASE CONCEPT AND SQL
- Basic history of database concept: DBMS, RDBMS, ORDBMS
- Advantage of ORACLE database and version information
- Interface tools usage: sqlplus, isqlplus, sqldeveloper, Toad
- SQL Language overview : DQL, DML, DDL, DCL, TCL
- What is the usage of ANSI standard
- SELECT Command – Column Alias Rules, String data
- Concatenations with various data
- Null Value handling with number and characters
- Arithmetic Operator
- Concatenation Operator
- Eliminating Duplicate Rows
SECTION3: RESTRICTING AND SORTING DATA
- WHERE Clause – Character Strings and Dates, number
- General Comparison Conditions = > >= < <= <>
- Other Comparison BETWEEN , IN , LIKE , NULL
- Logical Conditions AND OR NOT
- ORDER BY Clause, Sorting by Column Alias , Column Position, Multiple Columns
SECTION4: SINGLE-ROW FUNCTIONS
- Character Functions: UPPER, LOWER, INITCAP, LENGTH, SUBSTR, INSTR, LPAD, RPAD, CONCAT, LTRIM, RTRIM, TRIM, REPLACE, TRANSLATE, REVERSE
- Number Functions: ROUND, TRUNC, MOD, POWER, CEIL , FLOOR, ABS
- Dates Functions: SYSDATE, MONTHS_BETWEEN, NEXT_DAY, LAST_DAY, ADD_MONTHS, ROUND, TRUNC, Arithmetic on Date
- Conversion Functions: Implicit Data-Type Conversion & Explicit Data-Type Conversion, TO_CHAR ,TO_NUMBER ,TO_DATE
- General Functions: NVL , NVL2 , NULLIF, COALESCE
- CASE Expression, DECODE
- Nested function with real-time usage
SECTION5: JOINS
- EQUI JOIN / SIMPLE JOIN / NORMAL JOIN
- ANSI JOIN, LEFT OUTER, RIGHT OUTER, FULL OUTER
- NATURAL JOIN, NATURAL OUTER JOINS
- INNER JOIN, JOIN … USING clause, JOIN … ON clause
- CROSS JOIN, NON-EQUI JOIN, SELF JOIN
- ORACLE STANDARD OUTER JOINS
- Multi table Joins, Complex Joins How to simplified complex joins
SECTION6: MULTI-ROW FUNCTIONS
- Group Functions Rules, SUM, MIN, MAX, COUNT, AVG
- Creating Groups of Data: GROUP BY Clause
- Filtering Group Results: The HAVING Clause
SECTION7: SUB-QUERIES
- Single-Row Subqueries- Rules, Operators : = > >= < <= <>
- Null Values in a Subquery
- Multi-Row Subqueries- Rules, Operators : IN, ANY , ALL
SECTION8: REPORTING DATA USING INTERFACE COMMANDS
- Pagesize, linesize , column heading , column format , colsep
- tTitle , bTitle , break on column, spool , CSV file generation, Text file generation
SECTION9: DATA MANIPULATION LANGUAGE DML AND TRANSACTION CONTROL LANGUAGE TCL
- DML : INSERT, UPDATE, DELETE, MERGE
- TCL : COMMIT, ROLLBACK, SAVEPOINT
SECTION10: DATA DEFINITION LANGUAGE – DDL
- DDL : CREATE, ALTER, RENAME, DROP, TRUNCATE
- DEFAULT OPTION
- Constrain table copy
SECTION11: CONSTRAINTS
- NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
- Column Level Constraint, Table Level Constraint Naming constraints and usage
- Adding a Constraint, Dropping a Constraint
- Disabling Constraints, Enabling Constraints
- Validating Constraints
SECTION12: VIEWS
- Simple Views and Complex Views Create, Drop, Source Code
- Rules for Performing DML Operations on a View
- WITH CHECK OPTION , WITH READ ONLY
- Inline Views
- Materialized View Create, Refresh, Drop – Usage
SECTION13: OTHER DATABASE OBJECTS
- Sequence- NEXTVAL and CURRVAL
- Index – When to Create an Index, When Not to Create an Index.
- Synonyms
SECTION14: DCL COMMANDS
- Creating Users
- Granting / Revoking Privileges
- Creating and Granting Privileges to a Role
SECTION15: DICTIONARY TABLES
- Tables, Views, Synonyms, Index, Sequence, Constrains, Source and other Dictionary
SECTION16: SET OPERATORS
- UNION
- UNION ALL
- INTERSECT
- MINUS
SECTION17: ADVANCED DATE-TIME FUNCTIONS
- TIME ZONES
- SYSDATE, SYSTIMESTAMP
- CURRENT_DATE , CURRENT_TIMESTAMP
- SESSIONTIMEZONE
- Storing time zone data in Table
- EXTRACT
- TO_YMINTERVAL
SECTION18: ADVANCED GROUP BY CLAUSE
- Group by with ROLLUP
- Group by with CUBE
- GROUPING SETS
SECTION19: ADVANCED SUBQUERIES
- Pairwise Comparison Subquery
- Nonpairwise Comparison Subquery
- Correlated Subqueries
- Correlated UPDATE
- Correlated DELETE
- EXISTS , NOT EXISTS Operator
SECTION20: HIERARCHICAL RETRIEVAL
- Walking the Tree: From the Bottom Up , From the Top Down
- LEVEL Pseudo column
- Connect by prior
SECTION21: MULTI-TABLE INSERT
- Unconditional INSERT ALL
- Conditional INSERT ALL
- Conditional FIRST INSERT
SECTION22: DATA LOADER
- SQLLDR Loading CSV file / Flat file into ORACLE table.
SECTION23: ANALYTIC FUNCTIONS
- WM_CONCAT, LAG, LEAD, RANK, DENSE_RANK
- Query_by partition_clause with sum, min, max, avg, count
- order_by_clause with sum, min, max, avg, count
- Psudo column : Rownum, Rowid, – Elimination duplicate data
- Connect by rownum , Connect by Level Generating random numbers, random dates
- Quote Operator syntax and usage
SECTION24: BACKUP
SECTION25: GENERAL DISCUSSION
- What is migration?
- Migration Estimating, Planning, Preparation Simple Scenario / Complex Scenario.
ANALYTIC SQL TRAINING COURSE MODULES
REQUEST A DEMO
SECTION1: GROUPING AND AGGREGATING DATA USING SQL
- Generating Reports by Grouping Related Data
- Review of Group Functions
- Reviewing GROUP BY and HAVING Clause
- Using the ROLLUP and CUBE Operators
- Using the GROUPING Function
- Working with GROUPING SET Operators and Composite Columns
- Using Concatenated Groupings with Example
SECTION2: HIERARCHICAL RETRIEVAL
- Using Hierarchical Queries
- Sample Data from the EMPLOYEES Table
- Natural Tree Structure
- Hierarchical Queries: Syntax
- Walking the Tree: Specifying the Starting Point
- Walking the Tree: Specifying the Direction of the Query
- Using the WITH Clause
- Hierarchical Query Example: Using the CONNECT BY Clause
SECTION3: WORKING WITH REGULAR EXPRESSIONS
- Introducing Regular Expressions
- Using the Regular Expressions Functions and Conditions in SQL and PL/SQL
- Introducing Metacharacters
- Using Metacharacters with Regular Expressions
- Regular Expressions Functions and Conditions: Syntax
- Performing a Basic Search Using the REGEXP_LIKE Condition
- Finding Patterns Using the REGEXP_INSTR Function
- Extracting Substrings Using the REGEXP_SUBSTR Function
SECTION4: ANALYZING AND REPORTING DATA USING SQL
- Overview of SQL for Analysis and Reporting Functions
- Using Analytic Functions
- Using the Ranking Functions
- Using Reporting Functions
SECTION5: PERFORMING PIVOTING AND UNPIVOTING OPERATIONS
- Performing Pivoting Operations
- Using the PIVOT and UNPIVOT Clauses
- Pivoting on the QUARTER Column: Conceptual Example
- Performing Unpivoting Operations
- Using the UNPIVOT Clause Columns in an UNPIVOT Operation
- Creating a New Pivot Table: Example
SECTION6: PATTERN MATCHING USING SQL
- Row Pattern Navigation Operations
- Handling Empty Matches or Unmatched Rows
- Excluding Portions of the Pattern from the Output
- Expressing All Permutations
- Rules and Restrictions in Pattern Matching
- Examples of Pattern Matching
SECTION7: MODELING DATA USING SQL
- Using the MODEL clause
- Demonstrating Cell and Range References
- Using the CV Function
- Using FOR Construct with IN List Operator, incremental values and Subqueries
- Using Analytic Functions in the SQL MODEL Clause
- Distinguishing Missing Cells from NULLs
- Using the UPDATE, UPSERT and UPSERT ALL Options
- Reference Models
SQL STATEMENT TUNING TRAINING COURSE MODULES
REQUEST A DEMO
SECTION1: EXPLORING THE ORACLE DATABASE ARCHITECTURE
- Describe the major architectural components of Oracle Database server
- Explain memory structures
- Describe background processes
- Correlate logical and physical storage structures
SECTION2: INTRODUCTION TO SQL TUNING
- Describe what attributes of a SQL statement can make it perform poorly
- Describe the Oracle tools that can be used to tune SQL
- Explain the tuning tasks
SECTION3: INTRODUCTION TO THE OPTIMIZER
- Describe the execution steps of a SQL statement
- Explain the need for an optimizer
- Explain the various phases of optimization
- Control the behavior of the optimizer
SECTION4: INTERPRETING EXECUTION PLANS
- Gather execution plans
- Display execution plans, display xplan
- Interpret execution plans
SECTION5: APPLICATION TRACING
- Configure the SQL Trace facility to collect session statistics
- Use the trcsess utility to consolidate SQL trace files
- Format trace files using the tkprof utility
- Interpret the output of the tkprof command
SECTION6: OPTIMIZER OPERATIONS
- Describe the SQL operations for tables and indexes
- Describe the possible access paths for tables and indexes
SECTION7: OPTIMIZER: JOIN OPERATIONS
- Describe the SQL operations for joins
- Describe the possible access paths for joins
SECTION8: OTHER OPTIMIZER OPERATIONS
- Describe Clusters, In-List, Sorts, Filters and Set Operations
- Use Result Cache operations
SECTION9: CASE STUDY: STAR TRANSFORMATION
- Define a star schema, a star query plan without transformation and a star query plan after transformation
SECTION10: OPTIMIZER STATISTICS
- Gather optimizer statistics
- Gather system statistics
- Set statistic preferences
- Use dynamic sampling
- Manipulate optimizer statistics
SECTION11: USING BIND VARIABLES
- Explain the benefits of using bind variables
- Use bind peeking
- Use adaptive cursor sharing
SECTION12: SQL TUNING ADVISOR
- Describe statement profiling
- Use SQL Tuning Advisor
SECTION13: USING SQL ACCESS ADVISOR
SECTION14: AUTOMATING SQL TUNING
SECTION15: SQL PLAN MANAGEMENT
- Manage SQL performance through changes
- Set up SQL Plan Management
- Set up various SQL Plan Management scenarios
SECTION16: USING OPTIMIZER HINTS
- Use hints when appropriate
- Specify hints for Optimizer mode, Query transformation, Access path, Join orders, Join methods and Views
SECTION17: PARALLEL PROCESSING CONCEPTS
- Explain what parallel processing is and why is it useful
SECTION18: BASICS OF PARALLEL EXECUTION
- Describe operations that can be parallelized
- Explain parallel execution theory
- Understand impact of initiali zation parameter on parallel execution
SECTION19: MANUAL DOP MANAGEMENT
- Understand an explain plan of a parallel query
- Understand an explain plan of parallel DML and DDL
SECTION20: SIMPLIFIED AUTO DOP
- Understand the new parameters of Auto DOP
- Explain when to use Auto DOP
- Use Auto DOP
SECTION21: STATEMENT QUEUING
- Explain statement queuing, concurrency and DBRM
SECTION22: IN-MEMORY PARALLEL EXECUTION
- Use in-memory parallel execution
SECTION23: PARTITIONING CONCEPTS
- Explain the available partitioning strategies
- Explain partition pruning
- Implement partition enhancements in star query optimization
SECTION24: MATERIALIZED VIEWS
- Use summaries to improve performance
- Differentiate materialized view types
ORACLE PL/SQL TRAINING COURSE MODULES
REQUEST A DEMO
SECTION1: INTRODUCTION
- Course Objectives
- Course Agenda
- Human Resources (HR) Schema
- Introduction to SQL Developer
SECTION2: INTRODUCTION TO PL/SQL
- PL/SQL Overview
- Benefits of PL/SQL Subprograms
- Overview of the Types of PL/SQL blocks
- Create a Simple Anonymous Block
- Generate Output from a PL/SQL Block
SECTION3: PL/SQL IDENTIFIERS
- List the different Types of Identifiers in a PL/SQL subprogram
- Usage of the Declarative Section to define Identifiers
- Use variables to store data
- Identify Scalar Data Types
- The %TYPE Attribute
- What are Bind Variables?
- Sequences in PL/SQL Expressions
SECTION4: WRITE EXECUTABLE STATEMENTS
- Describe Basic PL/SQL Block Syntax Guidelines
- Comment Code
- Deployment of SQL Functions in PL/SQL
- How to convert Data Types?
- Nested Blocks
- Identify the Operators in PL/SQL
SECTION5: INTERACTION WITH THE ORACLE SERVER
- Invoke SELECT Statements in PL/SQL to Retrieve data
- Data Manipulation in the Server Using PL/SQL
- SQL Cursor concept
- Usage of SQL Cursor Attributes to Obtain Feedback on DML
- Save and Discard Transactions
SECTION6: CONTROL STRUCTURES
- Conditional processing Using IF Statements
- Conditional processing Using CASE Statements
- Use simple Loop Statement
- Use While Loop Statement
- Use For Loop Statement
- Describe the Continue Statement
SECTION7: COMPOSITE DATA TYPES
- Use PL/SQL Records
- The %ROWTYPE Attribute
- Insert and Update with PL/SQL Records
- Associative Arrays (INDEX BY Tables)
- Examine INDEX BY Table Methods
- Use INDEX BY Table of Records
SECTION8: EXPLICIT CURSORS
- What are Explicit Cursors?
- Declare the Cursor
- Open the Cursor
- Fetch data from the Cursor
- Close the Cursor
- Cursor FOR loop
- Explicit Cursor Attributes
- FOR UPDATE Clause and WHERE CURRENT Clause
SECTION9: EXCEPTION HANDLING
- Understand Exceptions
- Handle Exceptions with PL/SQL
- Trap Predefined Oracle Server Errors
- Trap Non-Predefined Oracle Server Errors
- Trap User-Defined Exceptions
- Propagate Exceptions
- RAISE_APPLICATION_ERROR Procedure
SECTION10: STORED PROCEDURES AND FUNCTIONS
- Understand Stored Procedures and Functions
- Differentiate between anonymous blocks and subprograms
- Create a Simple Procedure
- Create a Simple Procedure with IN parameter
- Create a Simple Function
- Execute a Simple Procedure
- Execute a Simple Function
SECTION11: CREATE STORED PROCEDURES
- Create a Modularized and Layered Subprogram Design
- Modularize Development With PL/SQL Blocks
- Describe the PL/SQL Execution Environment
- Identity the benefits of Using PL/SQL Subprograms
- List the differences Between Anonymous Blocks and Subprograms
- Create, Call, and Remove Stored Procedures Using the CREATE Command and SQL Developer
- Implement Procedures Parameters and Parameters Modes
- View Procedures Information Using the Data Dictionary Views and SQL Developer
SECTION12: CREATE STORED FUNCTIONS
- Create, Call, and Remove a Stored Function Using the CREATE Command and SQL Developer
- Identity the advantages of Using Stored Functions in SQL Statements
- List the steps to create a stored function
- Implement User-Defined Functions in SQL Statements
- Identity the restrictions when calling Functions from SQL statements
- Control Side Effects when calling Functions from SQL Expressions
- View Functions Information
SECTION13: CREATE PACKAGES
- Identity the advantages of Packages
- Describe Packages
- List the components of a Package
- Develop a Package
- How to enable visibility of a Packages components?
- Create the Package Specification and Body Using the SQL CREATE Statement and SQL Developer
- Invoke Package Constructs
- View PL/SQL Source Code Using the Data Dictionary
SECTION14: PACKAGES
- Overloading Subprograms in PL/SQL
- Use the STANDARD Package
- Use Forward Declarations to Solve Illegal Procedure Reference
- Implement Package Functions in SQL and Restrictions
- Persistent State of Packages
- Persistent State of a Package Cursor
- Control Side Effects of PL/SQL Subprograms
- Invoke PL/SQL Tables of Records in Packages
SECTION15: IMPLEMENT ORACLE-SUPPLIED PACKAGES IN APPLICATION DEVELOPMENT
- What are Oracle-Supplied Packages?
- Examples of Some of the Oracle-Supplied Packages
- How Does the DBMS_OUTPUT Package Work?
- Use the UTL_FILE Package to Interact With Operating System Files
- Invoke the UTL_MAIL Package
- Write UTL_MAIL Subprograms
SECTION16: DYNAMIC SQL
- The Execution Flow of SQL
- What is Dynamic SQL?
- Declare Cursor Variables
- Dynamically executing a PL/SQL Block
- Configure Native Dynamic SQL to Compile PL/SQL Code
- Invoke DBMS_SQL Package
- Implement DBMS_SQL with a Parameterized DML Statement
- Dynamic SQL Functional Completeness
SECTION17: DESIGN CONSIDERATIONS FOR PL/SQL CODE
- Standardize Constants and Exceptions
- Understand Local Subprograms
- Write Autonomous Transactions
- Implement the NOCOPY Compiler Hint
- Invoke the PARALLEL_ENABLE Hint
- The Cross-Session PL/SQL Function Result Cache
- The DETERMINISTIC Clause with Functions
- Usage of Bulk Binding to Improve Performance
SECTION18: TRIGGERS
- Describe Triggers
- Identify the Trigger Event Types and Body
- Business Application Scenarios for Implementing Triggers
- Create DML Triggers Using the CREATE TRIGGER Statement and SQL Developer
- Identify the Trigger Event Types, Body, and Firing (Timing)
- Statement Level Triggers Versus Row Level Triggers
- Create Instead of and Disabled Triggers
- How to Manage, Test, and Remove Triggers?
SECTION19: CREATE COMPOUND, DDL, AND EVENT DATABASE TRIGGERS
- What are Compound Triggers?
- Identify the Timing-Point Sections of a Table Compound Trigger
- Compound Trigger Structure for Tables and Views
- Implement a Compound Trigger to Resolve the Mutating Table Error
- Compare Database Triggers to Stored Procedures
- Create Triggers on DDL Statements
- Create Database-Event and System-Event Triggers
- System Privileges Required to Manage Triggers
SECTION20: THE PL/SQL COMPILER
- What is the PL/SQL Compiler?
- Describe the Initialization Parameters for PL/SQL Compilation
- List the New PL/SQL Compile Time Warnings
- Overview of PL/SQL Compile Time Warnings for Subprograms
- List the benefits of Compiler Warnings
- List the PL/SQL Compile Time Warning Messages Categories
- Setting the Warning Messages Levels: Using SQL Developer, PLSQL_WARNINGS Initialization Parameter, and the DBMS_WARNING Package Subprograms
- View Compiler Warnings: Using SQL Developer, SQL*Plus, or the Data Dictionary Views
SECTION21: MANAGE PL/SQL CODE
- What Is Conditional Compilation?
- Implement Selection Directives
- Invoke Predefined and User-Defined Inquiry Directives
- The PLSQL_CCFLAGS Parameter and the Inquiry Directive
- Conditional Compilation Error Directives to Raise User-Defined Errors
- The DBMS_DB_VERSION Package
- Write DBMS_PREPROCESSOR Procedures to Print or Retrieve Source Text
- Obfuscation and Wrapping PL/SQL Code
SECTION22: MANAGE DEPENDENCIES
- Overview of Schema Object Dependencies
- Query Direct Object Dependencies using the USER_DEPENDENCIES View
- Query an Objects Status
- Invalidation of Dependent Objects
- Display the Direct and Indirect Dependencies
- Fine-Grained Dependency Management in Oracle Database 11g
- Understand Remote Dependencies
- Recompile a PL/SQL Program Unit
SECTION23: DESIGNING PL/SQL CODE
- Describe the predefined data types
- Create subtypes based on existing types for an application
- List the different guidelines for cursor design
- Cursor variables
SECTION24: USING COLLECTIONS
- Overview of collections
- Use Associative arrays
- Use Nested tables
- Use VARRAYs
- Compare nested tables and VARRAYs
- Write PL/SQL programs that use collections
- Use Collections effectively
SECTION25: MANIPULATING LARGE OBJECTS
- Describe a LOB object
- Use BFILEs
- Use DBMS_LOB.READ and DBMS_LOB.WRITE to manipulate LOBs
- Create a temporary LOB programmatically with the DBMS_LOB package
- Introduction to SecureFile LOBs
- Use SecureFile LOBs to store documents
- Convert BasicFile LOBs to SecureFile LOB format
- Enable reduplication and compression
SECTION26: USING ADVANCED INTERFACE METHODS
- Calling External Procedures from PL/SQL
- Benefits of External Procedures
- C advanced interface methods
- Java advanced interface methods
SECTION27: PERFORMANCE AND TUNING
- Understand and influence the compiler
- Tune PL/SQL code
- Enable intra unit inlining
- Identify and tune memory issues
- Recognize network issues
SECTION28: IMPROVING PERFORMANCE WITH CACHING
- Describe result caching
- Use SQL query result cache
- PL/SQL function cache
- Review PL/SQL function cache considerations
SECTION29: ANALYZING PL/SQL CODE
- Finding Coding Information
- Using DBMS_DESCRIBE
- Using ALL_ARGUMENTS
- Using DBMS_UTILITY.FORMAT_CALL_STACK
- Collecting PL/Scope Data
- The USER/ALL/DBA_IDENTIFIERS Catalog View
- DBMS_METADATA Package
SECTION30: PROFILING AND TRACING PL/SQL CODE
- Tracing PL/SQL Execution
- Tracing PL/SQL Steps
SECTION31: IMPLEMENTING VPD WITH FINE-GRAINED ACCESS CONTROL
- Understand how fine-grained access control works overall
- Describe the features of fine-grained access control
- Describe an application context
- Create an application context
- Set an application context
- List the DBMS_RLS procedures
- Implement a policy
- Query the dictionary views holding information on fine-grained access
SECTION32: SAFEGUARDING YOUR CODE AGAINST SQL INJECTION ATTACKS
- SQL Injection Overview
- Reducing the Attack Surface
- Avoiding Dynamic SQL
- Using Bind Arguments
- Filtering Input with DBMS_ASSERT
- Designing Code Immune to SQL Injections
- Testing Code for SQL Injection Flaws