By Vinish Kapoor

Oracle PL/SQL Tutorials

Every Oracle PL/SQL tutorial on vinish.dev: the language, collections, packages and triggers, the built-in packages from DBMS_SCHEDULER to UTL_HTTP, and practice programs.

  • 254 tutorials
  • 16 topics
  • 4 learning paths
  • Updated October 2026

Browse by topic

Learning paths

Ordered series you can follow from the first lesson to the last. Your progress is saved in this browser.

Intermediate · 21 lessons

Working with Files & BLOBs

Read and write files with UTL_FILE, move data in and out as CSV, Excel and JSON, and handle BLOBs.

Start lesson 1 →
  1. Using PL/SQL UTL_FILE to Read and Write Files
  2. utl_file.fopen Parameters in Oracle
  3. How to Check If File Exists in PL/SQL?
  4. Oracle PL/SQL: UTL_FILE.FCOPY Example
  5. How to Move File from One Directory to Another Using PL/SQL
  6. UTL_FILE.FREMOVE Example: Delete a File in Oracle
  7. Split Large Text/CSV File into Multiple Files in PL/SQL
  8. Import CSV File in Oracle Table Using Stored Procedure
  9. Oracle PL/SQL: Export Data from a Table to CSV
  10. Export Data into Excel from Oracle Table Using PL/SQL
  11. Export Data into JSON File in Oracle 11g Using PL/SQL
  12. How to Insert a File in Oracle Database?
  13. How to Get BLOB from File in PL/SQL?
  14. How to Save BLOB as File in PL/SQL?
  15. How to Get File From BLOB in Oracle?
  16. Get BLOB from the BFILE Column in Oracle
  17. Oracle PL/SQL: Check If BLOB or CLOB is Empty
  18. How to Check if File is Image Using PL/SQL?
  19. How to ZIP a File in PL/SQL?
  20. How to UNZIP a File in PL/SQL?
  21. Merge/Combine Multiple PDF Files into One PDF in Oracle Using PLPDF_TOOLKIT PL/SQL Package

Tip: Ctrl-click a lesson to open it in a new tab. It still counts toward your progress.

Beginner · 14 lessons

PL/SQL Practice Programs

Warm up with classic programs, from adding two numbers to Armstrong and Fibonacci.

Start lesson 1 →
  1. PL/SQL Program To Add Two Numbers
  2. PL/SQL Program to Swap two Numbers
  3. PL/SQL Program to Check Number is Odd or Even
  4. PL/SQL Program to Find the Greatest of Three Numbers
  5. PL/SQL Program for Reverse of a Number
  6. PL/SQL Program for Palindrome Number
  7. PL/SQL Program for Armstrong Number
  8. PL/SQL Program for Prime Number
  9. PL/SQL Program for Fibonacci Series
  10. PL/SQL Program to Find Factorial of a Number
  11. PL/SQL Program to Print Table of a Number
  12. PL/SQL Program to Reverse a String
  13. PL/SQL Program to Print Patterns
  14. How to Print 1 to 10 Without Using Loop in PL/SQL?

Tip: Ctrl-click a lesson to open it in a new tab. It still counts toward your progress.

Latest tutorials

Books & free tools

Go deeper with the books, or try the free tools.

All tutorials by topic

PL/SQL Basics 18

Blocks, variables, subtypes, IF, CASE, loops, and cursors.

Collections, Records & Types 8

Associative arrays, nested tables, varrays, qualified expressions, object types, and ANYDATA.

Procedures, Functions & Packages 24

Procedures, functions, packages, overloading, result caching, SQL macros, and table functions.

Triggers 8

Row, statement, compound, INSTEAD OF, and system triggers, and the mutating table error.

Dynamic SQL & Bulk Processing 9

EXECUTE IMMEDIATE, DBMS_SQL, BULK COLLECT, FORALL, and parallel chunked updates.

Exceptions & Debugging 11

Raising and handling exceptions, error codes and stacks, ORA- and PLS- errors, and logging.

Fixing PL/SQL Errors (ORA-, PLS-) 24

What common PL/SQL runtime and compile errors mean and how to fix them: NO_DATA_FOUND, cursors, collections, PLS-00103, and more.

Files, LOBs & Import/Export 29

UTL_FILE, BLOBs and CLOBs with DBMS_LOB, compression, ZIP and PDF files, and CSV, Excel and JSON export.

Web, HTTP, Email & Integration 22

UTL_HTTP, network ACLs, email, TCP, the PL/SQL Web Toolkit, JavaScript, Java, and Python.

Jobs, Queues & Messaging 16

DBMS_SCHEDULER jobs and chains, Advanced Queuing, pipes, alerts, locks, and change notification.

JSON, XML & Text Search 15

JSON_OBJECT_T, JSON schemas and duality views, SODA, XML packages, and Oracle Text search.

Security & Encryption 6

DBMS_CRYPTO, authenticated encryption, SQL injection prevention, VPD, and fine-grained auditing.

Performance, Tuning & Code Quality 16

Execution plans, statistics, tracing, profiling, code coverage, and conditional and native compilation.

Schema, Metadata & Session Utilities 18

DBMS_METADATA, online redefinition, editions, DBMS_ROWID, DBMS_SESSION, and other schema tools.

Strings, Dates & Utilities 14

Split strings, random data, string matching, UTL_RAW, Base64, dates and time zones, and validation.

PL/SQL Practice Programs 16

Classic PL/SQL programs for practice and interviews: primes, Fibonacci, palindromes, and more.

  • PL/SQL Program To Add Two Numbers

    This is one of the most basic and common programs for beginners to write. It teaches you the fundamental structure of a PL/SQL program, including how to declare…

  • PL/SQL Program to Swap two Numbers

    Swapping the values of two variables (making a become b and b become a) is one of the most fundamental logic puzzles in programming. In PL/SQL, this is easily…

  • PL/SQL Program to Check Number is Odd or Even

    Determining if a number is odd or even is a fundamental programming exercise. In PL/SQL, this is very easy to do and is the perfect way to learn about conditional logic…

  • PL/SQL Program to Find the Greatest of Three Numbers

    A common task for new programmers is to compare several values to find the largest or smallest. In Oracle PL/SQL, you can easily find the greatest of three numbers using…

  • PL/SQL Program for Reverse of a Number

    Writing a program to reverse a number (for example, turning 12345 into 54321) is a classic programming challenge. It's a great way to learn how to use loops and basic…

  • PL/SQL Program for Palindrome Number

    A "palindrome" is a number (or word) that reads the same backward as it does forward. For example, 121, 535, and 7 are all palindrome numbers. Writing a program to check…

  • PL/SQL Program for Armstrong Number

    Writing a program to check if a number is an "Armstrong Number" (or a "narcissistic number") is a classic programming challenge. It's a great exercise to learn how to…

  • PL/SQL Program for Prime Number

    Writing a program to determine if a number is prime is a classic programming challenge. It's a great exercise to learn about loops, conditional logic (IF statements)…

  • PL/SQL Program for Fibonacci Series

    The Fibonacci series is a famous mathematical sequence where each new number is the sum of the two preceding ones. Writing a program to generate this sequence is a…

  • PL/SQL Program to Find Factorial of a Number

    Calculating a factorial is a common programming exercise that demonstrates how to use loops for repeated multiplication. In PL/SQL, you can easily write a program to…

  • PL/SQL Program to Print Table of a Number

    A common exercise for learning any new programming language is to print a multiplication table (e.g., the "5 times table"). This is a perfect task for learning how to…

  • PL/SQL Program to Reverse a String

    Writing a program to reverse a string (for example, turning "hello" into "olleh") is a classic programming challenge. It's a great way to learn how to use loops and…

  • PL/SQL Program to Print Patterns

    Printing patterns like triangles and pyramids is a classic programming exercise for learning how to use loops. In Oracle, you can do this using PL/SQL (Procedural…

  • How to Print 1 to 10 Without Using Loop in PL/SQL?

    Here I am giving an example to print 1 to 10 without using the loop in PL/SQL. You can print up to any number by changing the value 10 to any number, for example, 100.…

  • PL/SQL Program to Delete The Records From Table

    In this tutorial, you will learn how to delete the records from a table in Oracle using PL/SQL. In Oracle PL/SQL, we can delete the records using DELETE DML Statement…

  • PL/SQL Program to Print Employee Details

    In this tutorial, you will learn how to print employee details using PL/SQL program. PL/SQL Program to Print Employee Details In the following example, it will print the…