PL/SQL Tutorial PDF - Shikshaglobe

PL/SQL Tutorial PDF

What is PL/SQL?

PL/SQL stands for Procedural Language/Structured Query Language. It is a powerful extension of SQL (Structured Query Language) used in Oracle Database development. PL/SQL allows developers to write procedural code that can be executed on the Oracle server, enabling them to perform complex data manipulation and business logic operations efficiently.

Advantages of PL/SQL

  • Integration of procedural constructs: PL/SQL combines procedural constructs like loops, conditionals, and exception handling with SQL, making it highly flexible for handling complex business requirements.
  • Improved performance: PL/SQL code executes on the server, reducing network traffic and enhancing performance by minimizing round-trips to the database.
  • Enhanced security: PL/SQL allows you to encapsulate sensitive operations and restrict direct access to tables, improving security and data integrity.
  • Code reusability: By creating procedures, functions, and packages, developers can reuse code, promoting code consistency and maintainability.
  • Exception handling: PL/SQL provides robust error handling mechanisms, allowing developers to identify and handle exceptions effectively.

PL/SQL Architecture

PL/SQL architecture consists of three main components:

1.     PL/SQL Engine: Responsible for processing and executing PL/SQL code. It resides on the Oracle server.

2.     SQL Engine: Handles SQL queries and DML operations. It is responsible for data retrieval and manipulation.

3.     Database Buffer Cache: Stores frequently accessed data, reducing the need for disk I/O.

Click here to learn more

PL/SQL Basic Syntax

PL/SQL Block Structure

A PL/SQL block is the basic unit of code execution. It begins with the DECLARE keyword (optional), followed by the BEGIN keyword, and ends with the END; keyword. It may contain variable declarations, SQL queries, procedural logic, and exception handling.

Declaring Variables

Variables in PL/SQL are declared using the DECLARE keyword, followed by the variable name, data type, and optional initial value.

Executing PL/SQL Code

PL/SQL code can be executed using tools like SQL*Plus, SQL Developer, or embedded within other programs and applications.

Comments in PL/SQL

Comments can be added to PL/SQL code using the -- for single-line comments and /* */ for multi-line comments.

Data Types and Variables

PL/SQL Data Types

PL/SQL supports various data types, including numeric, character, date, Boolean, and composite types like records and collections.

Declaring Variables

Variables are declared using the DECLARE keyword, specifying the variable name, data type, and optional initial value.

Click here to find out more


Constants are declared using the CONSTANT keyword and cannot be changed once assigned a value.


Control Structures

IF-THEN-ELSE Statement

The IF-THEN-ELSE statement allows conditional execution of code. It checks a condition, and if it evaluates to true, the code within the IF block is executed. Otherwise, the code within the ELSE block (if present) is executed.

CASE Statement

The CASE statement is used for multiple conditional checks. It evaluates different conditions and executes the code associated with the first matching condition.

LOOP Statements

LOOP statements are used for iterative execution. There are three types of loops in PL/SQL: LOOPWHILE, and FOR. The LOOP statement creates an infinite loop, the WHILE loop executes code as long as the condition is true, and the FOR loop is used to iterate over a specific range or collection.


The WHILE loop executes a block of code repeatedly as long as the specified condition evaluates to true.

FOR Loop

The FOR loop iterates over a specified range or collection, executing a block of code for each iteration.

EXIT Statement

The EXIT statement is used to prematurely exit a loop before its natural completion based on a specific condition.

PL/SQL Cursors

Implicit Cursors

Implicit cursors are automatically created by the Oracle server for single-row queries. They handle query processing without requiring explicit cursor declarations.

Explicit Cursors

Explicit cursors are user-defined and used for processing multi-row queries. They provide more control over query processing and are used in conjunction with the OPENFETCH, and CLOSE statements.

Cursor Attributes

Cursor attributes provide information about the status of a cursor. Common attributes include %FOUND%NOTFOUND%ROWCOUNT, and %ISOPEN.

Your gateway to success

PL/SQL Exception Handling

Handling Exceptions

Exception handling in PL/SQL is done using the EXCEPTION block. It allows developers to catch and handle errors gracefully, preventing the program from terminating abruptly.

User-Defined Exceptions

Developers can define their own custom exceptions using the EXCEPTION keyword, allowing them to raise and handle specific errors.


The RAISE_APPLICATION_ERROR function is used to raise user-defined exceptions with custom error messages and error codes.

PL/SQL Procedures and Functions

Creating Procedures

Procedures in PL/SQL are named blocks of code that can be called multiple times. They can have input and output parameters and return no value.

Creating Functions

Functions in PL/SQL are similar to procedures, but they return a single value. They are used for calculations and computations.

Parameters in Procedures and Functions

Procedures and functions can have input parameters, output parameters, or both, allowing them to accept and return data.

Invoking Procedures and Functions

Procedures and functions are invoked using their names with appropriate parameter values. Procedures may use CALL or just the procedure name, while functions are called within SQL expressions.

PL/SQL Packages

Package Specification

The package specification defines the public interface of a package. It contains declarations of procedures, functions, variables, and cursors that can be accessed from outside the package.

Package Body

The package body contains the implementation of the procedures and functions declared in the package specification. It also includes private data and code that is not accessible outside the package.

Using Packages

To use a package, you need to declare it in your PL/SQL block or program. You can then access the procedures and functions defined in the package specification.

 Read More: How to Create Pivot Table in Excel 

Triggers in PL/SQL

What are Triggers?

Triggers in PL/SQL are named blocks of code that are automatically executed in response to specific database events, such as INSERT, UPDATE, DELETE, or database startup/shutdown. They are used to enforce business rules, data validation, and maintaining data integrity.

Types of Triggers

There are two types of triggers in PL/SQL: Row-Level Triggers (which fire for each affected row) and Statement-Level Triggers (which fire once for each triggering event).

Creating Triggers

Triggers are created using the CREATE TRIGGER statement, specifying the trigger name, event (e.g., INSERT, UPDATE, DELETE), timing (BEFORE or AFTER), and the table or view it applies to.

Trigger Execution

Triggers are executed automatically when the specified event occurs. They can access the old and new values of the affected rows to perform actions based on the changes.

PL/SQL Collections

Introduction to Collections

PL/SQL collections are composite data types used to store multiple elements of the same or different data types. They provide a convenient way to manipulate bulk data.

Nested Tables

Nested tables are one-dimensional arrays with no fixed size. They can be sparse, and their size can vary during runtime.

Associative Arrays (Index-by Tables)

Associative arrays are collections that use a user-defined key to access elements. They behave like arrays with a unique index for each element.

VARRAYs (Variable-Size Arrays)

VARRAYs are one-dimensional arrays with a fixed size defined at compile-time. They behave like arrays with a specific number of elements.

Know More: How to Create Charts in Excel

Dynamic SQL in PL/SQL


The EXECUTE IMMEDIATE statement allows developers to execute dynamically generated SQL statements at runtime. It is useful when the SQL statement is unknown during compilation.

Using Bind Variables

Bind variables are used to pass values into dynamically executed SQL statements securely, preventing SQL injection attacks.

Working with Dynamic Queries

Dynamic SQL enables developers to build and execute SQL statements based on user input or other runtime factors. However, it requires careful handling to avoid security risks.

Advanced PL/SQL Concepts

Bulk Processing with BULK COLLECT

BULK COLLECT is used to fetch multiple rows of data from a query into collections in a single operation. It significantly improves the performance of data retrieval and manipulation.

FORALL Statement

The FORALL statement performs bulk operations on collections. It is used with the BULK COLLECT feature to efficiently process large amounts of data.

PRAGMA Autonomous_Transaction

PRAGMA Autonomous_Transaction allows a PL/SQL block to execute as a separate transaction independent of the main transaction. It is useful when you need to commit or rollback specific operations within a block.

PL/SQL Debugging and Profiling


DBMS_OUTPUT.PUT_LINE is a built-in procedure used for printing debugging information during PL/SQL code execution. It helps developers understand the flow of the program and identify issues.

Explore More: Logical Functions in Excel

Using SQL Developer Debugger

Oracle SQL Developer provides a debugging feature that allows developers to set breakpoints, inspect variables, and step through code to troubleshoot issues efficiently.

PL/SQL Best Practices

Code Readability and Maintainability

Writing clean, well-structured code with meaningful variable and object names enhances code readability and maintainability.

Error Handling

Proper error handling is crucial in PL/SQL to gracefully handle exceptions and prevent the program from terminating unexpectedly.

Performance Optimization

Optimizing PL/SQL code involves reducing context switching, using proper indexing, and identifying and resolving bottlenecks.

PL/SQL and SQL Integration

SQL Statements in PL/SQL

PL/SQL code can include SQL statements like SELECT, INSERT, UPDATE, and DELETE to interact with the database.

Returning SQL Query Results

SQL queries can be used within PL/SQL to retrieve data from the database and process the results.

PL/SQL and Exception Handling

Propagating Exceptions

PL/SQL allows exceptions to be propagated from nested blocks to the outer blocks, providing a comprehensive view of errors.

Exception Propagation and Nested Blocks

Handling exceptions in nested blocks allows developers to handle errors at the appropriate level of the code hierarchy.

Tips for PL/SQL Performance Tuning

Identifying Bottlenecks

Profiling and monitoring tools help identify performance bottlenecks to optimize PL/SQL code.

Learn More: Database Architecture in DBMS

Using Proper Indexing

Applying appropriate indexes on tables enhances query performance and reduces execution time.

Reducing Context Switching

Minimizing the context switching between SQL and PL/SQL execution improves overall performance.

PL/SQL Security Considerations

Avoiding SQL Injection

Sanitizing user input and using bind variables help prevent SQL injection attacks.

Privileges and Roles

Granting appropriate privileges and roles to users ensures proper access control and security.

Data Encryption

Sensitive data should be encrypted to protect it from unauthorized access.

Real-World PL/SQL Examples

Building Business Logic

PL/SQL is used to implement complex business logic, such as order processing, inventory management, and customer relationship management.

Data Validation

PL/SQL is applied to validate data before inserting or updating it in the database, ensuring data integrity.

Reporting and Data Manipulation

PL/SQL can generate reports and perform data manipulations like aggregations and transformations.

Click here to explore further

Excel Data Validation
What is DBMS
Excel Basic FormulasIntroduction to Microsoft Excel 101


pl/sql tutorial pdforacle pl sql tutorial pdfadvanced pl sql tutorial pdfcomplete pl sql tutorial pdfdb2 pl sql tutorial pdfw3schools pl sql tutorial pdfpl/sql tutorial pdf free downloadpl/sql tutorial pdf tutorialspointpl sql tutorial pdf free downloadpl/sql tutorial pdf oracle sql for beginnersoracle pl sql developer tutorial pdfsql and pl sql tutorial pdforacle sql and pl sql tutorial pdforacle sql tutorial pdf for beginnerspl sql beginners tutorial pdfbest pl sql tutorialoracle pl/sql tutorial for beginners with exampleswhat is pl sql with examplepl sql tutorial pdf downloaddownload pl sql tutorial pdfpl sql tutorial point pdf downloadpl sql developer tutorial pdforacle sql tutorial pdforacle sql tutorial pdf free downloadpl/sql commands pdfpl sql guide pdforacle sql commands pdfpl/sql tutorial w3schools pdftutorial pl/sql español pdfpl sql developer tutorial pdf españoltutorial pl sql oracle en español pdforacle sql queries pdf free downloadoracle sql developer tutorial pdf free downloadpl sql full tutorial pdforacle sql tutorial pdf with examples free downloadfree download pl sql tutorial pdforacle 11g pl/sql tutorial pdf free downloadoracle pl/sql tutorial for beginners with examples pdfpl/sql tutorial point pdf free downloadpl sql developer tutorial for beginners with examples pdfpl/sql tutorial pdf githubpl/sql tutorial pdf google drivepl/sql tutorial pdf guipl/sql tutorial pdf guru99pl/sql tutorial pdf guido van rossumpl sql tutorial pdf geeks for geekspl sql tutorial pdf generationpl sql tutorial pdf google cloudpl sql tutorial pdf guidepl sql tutorial pdf gitpl/sql tutorial pdf hl7pl/sql tutorial pdf hindipl/sql tutorial pdf htmlpl sql tutorial pdf historypl sql tutorial pdf hivepl sql tutorial pdf hanapl sql tutorial pdf hostpl sql tutorial pdf hintspl sql tutorial pdf httppl sql tutorial pdf hierarchicalpl/sql tutorial in pdfpl/sql tutorial pdf javapl/sql tutorial pdf java 8pl/sql tutorial pdf javascriptpl/sql tutorial pdf jenkinspl/sql tutorial pdf javatpointpl/sql tutorial pdf javatpoint javapl sql tutorial pdf joinpl sql tutorial pdf jsonpl sql tutorial pdf jobspl sql tutorial pdf joins with examplespl/sql tutorial pdf kutapl/sql tutorial pdf kotlinpl/sql tutorial pdf kuta softwarepl/sql tutorial pdf kali linuxpl/sql tutorial pdf kannadapl sql tutorial pdf kudvenkatpl sql tutorial pdf kunchampl sql tutorial pdf keys

Featured Universities

Mahatma Gandhi University

Location: Soreng ,Sikkim , India
Approved: UGC
Course Offered: UG and PG

MATS University

Location: Raipur, Chhattisgarh, India
Approved: UGC
Course Offered: UG and PG

Kalinga University

Location: Raipur, Chhattisgarh,India
Approved: UGC
Course Offered: UG and PG

Vinayaka Missions Sikkim University

Location: Gangtok, Sikkim, India
Approved: UGC
Course Offered: UG and PG

Sabarmati University

Location: Ahmedabad, Gujarat, India
Approved: UGC
Course Offered: UG and PG

Arni University

Location: Tanda, Himachal Pradesh, India.
Approved: UGC
Course Offered: UG and PG

Capital University

Location: Jhumri Telaiya Jharkhand,India
Approved: UGC
Course Offered: UG and PG

Glocal University

Location: Saharanpur, UP, India.
Approved: UGC
Course Offered: UG and PG

Himalayan Garhwal University

Location: PG, Uttarakhand, India
Approved: UGC
Course Offered: UG and PG

Sikkim Professional University

Location: Sikkim, India
Approved: UGC
Course Offered: UG and PG

North East Frontier Technical University

Location: Aalo, AP ,India
Approved: UGC
Course Offered: UG and PG