
Set up your system, explore SQL Plus and SQL Developer, and learn declare, begin, and exception blocks, explicit cursors, and nested blocks for level 2 readiness.
Set up the Oracle PL/SQL environment by installing Oracle XE, configuring ports and system password, and using SQL Developer or SQL Plus to create and seed sample data with scripts.
Explore Oracle's built-in tools, set up database connections with host, port, and SID, and use bind variables to build dynamic scripts, while comparing SQL Developer, SQL Plus, and more.
Discover how pl sql merges the declarative nature of sql with procedural language within Oracle, offering portability, simple syntax, and flexible deployment via scripts, stored programs, objects.
Explore the structure of PL/SQL blocks, including declare, begin, exception, and end. Learn to comment code, terminate statements with semicolons, and use rollback for safe error handling.
Learn to use sql plus for pl sql blocks, declare and begin, manage ampersand variable substitution, set server output on, and use dbms_output with the period terminator.
Explore declare clause objects in Oracle PL/SQL, including variables, constants, records, tables, and user defined types; learn data types, simple vs complex, and safe naming rules.
Learn the available data types in Oracle pl/sql, from scalar integers and numbers to char and varchar2. Understand performance considerations and when to use rowid, urowid, booleans, and dates.
Learn how to declare a simple data type in PL/SQL, set default values, enforce not null, and declare constants, using colon equals for assignment and handling errors with exceptions.
Declare a variable with the type command to pull the data type from a table field, enabling dynamic, schema-sensitive scripts when working with complex data types.
Master using the percent rowtype to capture an entire table row as one variable, then access fields with dot notation (ssn, name, salary) for concise, one-statement assignments.
Declare a complex table in PL/SQL by defining a table type and a variable of that type, then populate management and worker lists from select statements.
Declare a custom record to combine fields from multiple tables, declare its fields, create variables, and populate from queries with max and min hours using dbms output.
Create and declare user defined types to build hierarchical records, such as a bonus compensation with cash, a company car, and vacation weeks, used in employee and manager records.
Explore the begin clause as the processing center for manipulating Oracle data and declared objects, using DML, string literals, and logic control for branching and data manipulation.
Explore working with char and varchar2 variables in Oracle PL/SQL, including string literals, apostrophes, and concatenation with two pipes to build full names and use dbms_output.put_line.
Master handling string literals in Oracle PL/SQL by using q-literal strings to escape apostrophes. Build robust messages with cue literals and bang delimiters for values like the value isn't valid.
Explore numeric variables and the colon equals assignment to ensure numeric values. Use arithmetic to calculate salary raises, prompting for salary and raise percent, and display current and new salaries.
Understand how dates are stored as numeric values in Oracle, then manipulate them by adding days, using system date for current dates and declaring variables with the date type.
Explore declaring and using boolean values in PL/SQL, including true, false, and null, with a default of false, and test expressions to drive if statements.
Learn to use comparison operators in PL/SQL, including equals, not equal, is null, like with %, in, and between, to evaluate strings in if statements.
Explore using SQL functions within PL/SQL scripts to manipulate and format data, including MAX, MIN, UPPER, LOWER, and ROUND for flexible output and calculations.
Execute pl sql dml—insert, update, delete—and manage commit, rollback, savepoint, and set transaction to locate the least productive employee with inner joins and aliases and delete related records.
Discover how the select into clause works in PL/SQL, matching fields to a record type and handling single-row results while noting the risks of multi-row returns.
Explore how Oracle PL/SQL handles select into exceptions, ensuring a single row and using summary functions to avoid no data found or too many rows.
Create and use sequences in Oracle to generate unique values for a table's primary key, starting at 1 and advancing via nextval; automate with triggers and inserts.
Master logic control and branching in PL/SQL by using program labels, the goto statement, and loop structures. Explore if then else and case statements for smarter, well-structured code.
Understand the go to statement as a jump in PL/SQL, using labels to control flow; declare the label first, ensure it exists, and place a command after it, like null.
Learn to use loops in pl/sql, including for next loops, exit, exit when, continue, and end loop, with fixed and reverse iterations, nested loops, inserts, commits, rollbacks, and exception handling.
Discover how to use the indefinite loop in PL/SQL, with loop and exit when, and a practical example that runs until only four employees remain.
Examine conditional loop in Oracle PL/SQL: runs indefinitely while a test is true, with a pre-test condition and updates to avoid execution; compare with for next and indefinite loops.
Demonstrate nested loops with outer and inner for next loops to populate a new transactions table, using x and i indices and a mod-based buy/sell condition.
Learn to implement if-then-else logic in pl/sql, test binary conditions, use else and else if for multiple branches, handle case sensitivity with upper or lower, and build nested conditions.
Learn how to replace complex if-then-else logic with Oracle PL/SQL's case statement, including selector and searched forms, conditions, and else handling.
Identify and handle exceptions in pl/sql by learning the exception clause, trapping for errors, and creating user declared exceptions, while understanding implicit cursor attributes.
Identify how to trap errors in PL/SQL by using the when statement, testing single or multiple exceptions, and implementing a global handler with when others then.
Identify exception details in Oracle PL/SQL by examining common errors like no data found, too many rows, and invalid cursor, and use when others with explicit and implicit cursors.
Create user defined exceptions in Oracle PL/SQL by declaring a named exception and binding it to a specific error code with pragma exception_init, then handle it in an exception clause.
Explore using sqlcode and sqlerrm objects to handle and debug pl/sql errors. Compare when others with user defined exceptions, and craft informative error messages for debugging and support.
Understand how Oracle automatically creates an implicit cursor for each SQL DML statement, exposing attributes like %FOUND, %NOTFOUND, %ROWCOUNT, and %ISOPEN to track affected rows in the session.
Declare an exception object and raise it to create a user defined event that enforces business rules for salary updates.
Explore explicit cursors in Oracle PL/SQL, declare and open a cursor, fetch rows sequentially, handle found and not found, and compare with DML, while recognizing advantages and limitations.
Explore cursor attributes for explicit and implicit cursors, including is open, found, not found, and row count, with practical examples of opening, fetching, and closing cursors.
Apply the continue statement in PL/SQL loops to skip remaining code and restart at the top. Compare with exit, and weigh in-loop filtering versus a where clause for efficiency.
Explore updateable cursors in Oracle PL/SQL, using for update of, where current of, and commit handling to safely update salary data while managing locks and performance.
Learn how cursor parameters make explicit cursors flexible by declaring typed parameters in the cursor, using them in the where clause, and passing values on open.
The for loop cursor simplifies code by automatically handling open, fetch, exit, and close through a select statement that declares the cursor type, boosting performance.
Understand nested blocks in PL/SQL, differentiating outer and inner blocks and their labels and begin/end. Learn to handle exceptions inside inner blocks and reuse outer-declared variables.
Explore global versus local objects and exceptions in nested blocks, learning how outer declarations become global while inner ones stay local, and how to handle exceptions that bubble up.
Explore subprograms in PL/SQL, compare them with nested blocks and stored program units, and learn modular design, procedure versus function, and syntax for declaring and calling.
Review key PL/SQL fundamentals, compare SQL Plus and SQL Developer, and master begin and declare blocks, exception handling, and explicit cursors to build robust applications.
Explore creating and maintaining stored procedures, functions, and database triggers. Learn about packages, advanced cursor techniques, system supply packages, and system event triggers in Oracle.
Install the Oracle X-C environment and the sequel developer application, then complete workstation setup by running database scripts to create tables and seed data on Windows.
Install sql developer by copying files into a dedicated folder and launching the executable, then load text-based sql scripts to define, create, insert, commit, and rollback data.
Set up Oracle and sequel developer, run and manage scripts from multiple files, create and populate the employees table, and troubleshoot script errors using the message log.
Explore how a database program unit splits load, letting the database handle heavy lifting. Identify anonymous blocks versus stored program units, and learn about procedures, functions, packaged options, and triggers.
Learn to create and distinguish stored procedures and functions in Oracle PL/SQL, using create or replace, parameters, in and out, and return values.
Understand parameter specification in Oracle PL/SQL by differentiating actual and formal parameters, setting mode, unconstrained data types, and optional defaults for procedures and functions.
Discover how to execute procedures and functions in Oracle via remote calls and SQL statements. Grasp execution rights, grant execute, exception handling, and named, positional, and mixed parameter notation.
Call your own user-defined functions inside SQL to extend Oracle built-ins, enabling in formal parameters and remote database usage with salary_valid_result.
Learn how Oracle handles compilation errors by storing them in the user_errors view, using show errors to identify issues, and recompile to clear errors as fixes are applied.
Learn to manage dependencies, recompile and drop Oracle PL/SQL programs, and safeguard against invalid states with data dictionary insights, privileges, rollback, and after-hours ddl.
Explore how Oracle stores objects in the data dictionary and how to query first-level dependencies with views such as user_, all_, and dba_, plus object size and errors.
Manage dependencies in Oracle PL/SQL by using time stamp and signature methods to track dependent objects, differentiate local and distributed databases, and prevent invalid states.
Explore how to track dependencies in Oracle databases, comparing the user dependencies view with the dependency tracking utility, and understand multi-level dependency chains from employee tables to salary functions.
Use the dependency tracking utility to find dependencies by running the dep tree fill procedure with object type, owner, and name, then query the dep tree table for results.
Create and maintain packages that group procedures and functions, exposing public header elements while keeping the body private, and call programs as packageName.program for improved performance and maintainability.
Learn to create an Oracle package by building its specification and body in order, exposing public procedures and functions while handling private versus public elements.
Explore package definition information in Oracle PL/SQL, using user_objects and the describe command to view public package and package body details, parameters, and validity indicators.
Explore advanced programming techniques inside a package, including invoker rights versus definer rights, persistent objects, package initialization logic, object oriented principles, and advanced cursor techniques.
Explore persistent global objects in a package by declaring public globals in the specification and private globals in the body, enabling cross-procedure data sharing while noting limitations for standalone use.
Explore initialization logic in PL/SQL packages by using a bottom-of-body anonymous block to set a global salary cap, exposed via a public function, and runs once per session.
Explore object oriented support in Oracle PL/SQL packages, highlighting modularity, encapsulation, and polymorphism through overloading to create reusable, flexible code.
Learn to maintain Oracle PL/SQL packages by tracking dependencies, dropping and recompiling the specification and body, and applying memory-based performance tricks through explicit instantiation.
Explore advanced cursor techniques by learning cursor variables and ref cursors. Compare strong versus weak definitions, and see how opening and fetching data within packages boosts performance and transfer efficiency.
Explore weak cursor definitions in Oracle PL/SQL, contrast with strong definitions, and learn to use a non restrictive ref cursor to handle varying data types with fetch and exception handling.
Learn to replace weak cursor definitions with the CIS ref cursor, letting Oracle manage the cursor as an object and reducing typing in open and fetch operations.
Master cursor expressions and explicit ref cursor techniques to query one-to-many hierarchies by embedding a cursor inside a column, enabling nested cursors for employees with projects or customers with orders.
Learn about system supplied packages in Oracle, focusing on rdbms_output and qtl_file, and how they extend database capabilities for debugging, messaging, and external file access.
Learn to use the UTL_FILE package to read and write external files by creating a directory object that maps to a host folder, handling file opens, writes, reads, and closes.
Explore database triggers in Oracle, including statement-level, row-level, and instead of triggers for tables and views, with examples and security use cases that enforce business rules.
Explain statement-level triggers that fire once per dml event, before or after insert, update, or delete, with optional column restrictions and use of raise_application_error for security and auditing.
Explore row-level triggers in Oracle PL/SQL, firing per updated row with old and new values, and compare with statement-level triggers using when and referencing clauses for conditional logic.
Explain how a row-level trigger enforces a salary constraint by checking if a new salary exceeds 70,000 and the employee is a manager, using raise_application_error on failure.
Create a row-level after insert or update trigger on the employee table to log salary changes above 70000 into an audit entry table, capturing old and new values.
Deploy a row level trigger that fires after insert or update to log budget requests for raises or new hires into budget request table, date entered default to system date.
Explore how the instead of trigger enables inserts, updates, and deletes on a view, mapping changes to underlying tables with a row-level trigger.
Understand privileges for triggers (create trigger, alter table or alter any), mutating table limits, and execution rules, including no commit, rollback, or savepoint inside triggers or called procedures.
Learn to use the call statement to split triggers into declaration and stored procedure, pass parameters from colon new or old, and manage mutating table issues with two approaches.
Learn how to maintain Oracle triggers: view errors, drop, alter, enable and disable, and manage data dictionary storage, including per-trigger and per-table operations.
Understand how Oracle handles multiple triggers for the same event on a table, including before/after, row/statement triggers, and the follows clause to order execution.
Learn to bypass mutating table errors by coordinating row-level updates with a statement-level trigger using a package and global variables.
Explore compound triggers in Oracle 11g to elegantly handle mutating tables by unifying row- and statement-level logic in one declaration, with after row and after statement sections.
Learn how system event triggers monitor the database environment, distinguishing database-wide and schema events, define scope, and use system event attributes like logon user and IP address to track activity.
Define the scope of system event triggers in Oracle by choosing on schema or on database, and ensure proper privileges to grant and create triggers.
Identify Oracle system events—system manager, user session, and user DDL events—and learn how before and after triggers use attributes like client IP, database name, and sql text to log errors.
Explore Oracle PL/SQL fundamentals by mastering database program units, stored procedures and functions, and the benefits of packages; apply advanced cursor techniques, triggers, and system event triggers.
Explore the fundamentals of relational database design, from what a database is to relational architectures, relationships (one-to-one, one-to-many, many-to-many), and normalization for scalable systems.
Explore database basics, answer what a database is and why we use it, compare pc-friendly types like flat file and the relation, and outline the process of designing a database.
Define a database as a comprehensive collection of data organized for convenient access, transforming data into information when queried, and enabling ad hoc retrieval for business decisions.
Explore two database types: flat files like Excel and relational databases like Access, focusing on tables with fields, records, and primary keys to reduce redundancy and ensure single occurrences.
Determine the purpose and collect forms and reports to guide database design, then normalize data, build tables first, and review with users to refine the relational structure.
Learn normalization in the Oracle PL/SQL Fundamentals & Database Design course by breaking down data to eliminate redundancy and applying basic steps to simplify the concept.
Group common data into logical tables to reduce redundancy and improve data consistency. Explore five normal forms, including third normal form, to guide practical database design.
Brainstorm all potential data and fields to define the database purpose. Organize data, eliminate repetition, and assign relationships between tables to normalize the design and enable reliable reporting.
Brainstorm broadly, encouraging pie-in-the-sky thinking, to generate data ideas for database design, interview workers for insights, and adopt a Star Trek mindset where any query yields a result.
Organize your database by grouping related fields into themed tables, ensure each table has an auto-generated primary key, and avoid using mutable fields like telephone numbers as keys.
Learn to normalize by splitting a rough table into related tables using a primary key. Achieve multiple values per key and reach third normal form.
Learn how to assign relationships in a relational database, covering one-to-one, one-to-many, and many-to-many, and that many-to-many is bad.
Understand the one to one relationship where one record in a parent table matches one in a child table, often for security, enforced by primary keys and referential integrity.
Explore the one to many relationship, where one parent record relates to multiple child records via a common field, illustrated by customers, orders, ships, and departures.
Learn how to resolve many-to-many relationships by introducing an intermediary table, turning many-to-many into two one-to-many links through an order details table, avoiding a cartesian join and data inflation.
Explore how to relate normalized tables by linking company and address records using company_id and company_address_id, illustrating practical relational design.
Illustrates common bad database designs, like wide tables, and demonstrates normalization by separating data into dedicated tables such as sales reps, contact phones, and emails.
Explore good database design after bad examples by building clean tables and one-to-many relationships in Microsoft Access, using notes and date entered fields and inactive flags to preserve history.
Start every table with a primary key, use lookup tables to constrain fields, and normalize by breaking fields into atomic units while avoiding many-to-many with join tables.
Recap core database concepts from flat files to relational databases, and how one-to-one, one-to-many, and many-to-many relationships guide normalization toward third normal form.
Over 20 hours and 100 videos are included in this bundle.
Save 20% by purchasing 3 Oracle/Database courses. This bundle includes:
In this Oracle 11g PL/SQL vol I & II courses, you will receive introduction training on PL/SQL database programming language covering syntax, structure and features of the language within the context of database applications and programming. In volume II students will dive into topics such as understanding the basic form and structure of program units stored within the database, building and maintaining stored procedures, functions, packaged programs, and database triggers. Additional topics include taking advantage of advanced programming techniques such as cursor variables and cursor expressions. This Oracle 11g course will prepare students for the Oracle certification exams (OCP).
The Database Design Instruction course familiarizes the student with techniques necessary to properly create and normalize a relational database. This single course can help prevent the new database developer from creating mistakes that add hours and days to a development project. Information in this course is a must for anyone responsible for building and maintaining a database.