Unlocking the World of Business Intelligence with SQLBI

Introduction to Packages
A package in PL/SQL is a collection of
related procedures, functions, variables, and other database objects grouped
together as a single unit. Packages help in modularizing code, enhancing
reusability, and improving the performance of PL/SQL applications.
Packages consist of two components:
Uses of
Packages
Packages provide multiple advantages in PL/SQL
programming:
Components
of a Package
A package consists of the following
components:
Syntax of a
Package
Package
Specification
CREATE OR
REPLACE PACKAGE package_name AS
PROCEDURE procedure_name;
FUNCTION function_name RETURN datatype;
END
package_name;
/
Package
Body
CREATE OR
REPLACE PACKAGE BODY package_name AS
PROCEDURE procedure_name IS
BEGIN
-- Procedure Implementation
END procedure_name;
FUNCTION function_name RETURN datatype IS
BEGIN
-- Function Implementation
RETURN some_value;
END function_name;
END
package_name;
/
Example:
Using Packages in SQL*Plus
Step 1:
Creating a Package Specification
CREATE OR
REPLACE PACKAGE employee_pkg AS
PROCEDURE display_employees;
FUNCTION get_employee_count RETURN NUMBER;
END
employee_pkg;
/
Step 2:
Creating a Package Body
CREATE OR
REPLACE PACKAGE BODY employee_pkg AS
PROCEDURE display_employees IS
BEGIN
FOR rec IN (SELECT emp_id, emp_name FROM
employees) LOOP
DBMS_OUTPUT.PUT_LINE('ID: ' ||
rec.emp_id || ', Name: ' || rec.emp_name);
END LOOP;
END display_employees;
FUNCTION get_employee_count RETURN NUMBER IS
emp_count NUMBER;
BEGIN
SELECT COUNT(*) INTO emp_count FROM
employees;
RETURN emp_count;
END get_employee_count;
END
employee_pkg;
/
Step 3:
Executing the Package in SQL*Plus
BEGIN
employee_pkg.display_employees;
END;
/
DECLARE
emp_count NUMBER;
BEGIN
emp_count :=
employee_pkg.get_employee_count;
DBMS_OUTPUT.PUT_LINE('Total Employees: ' ||
emp_count);
END;
/
Overloading
Procedures and Functions in Packages
PL/SQL allows overloading, where
multiple procedures or functions share the same name but have different
parameter lists. This enhances flexibility and readability of code.
Benefits of
Overloading in Packages:
Example of
Overloading in Packages
CREATE OR
REPLACE PACKAGE math_operations AS
FUNCTION add_numbers(x NUMBER, y NUMBER)
RETURN NUMBER;
FUNCTION add_numbers(x NUMBER, y NUMBER, z
NUMBER) RETURN NUMBER;
END
math_operations;
/
CREATE OR
REPLACE PACKAGE BODY math_operations AS
FUNCTION add_numbers(x NUMBER, y NUMBER)
RETURN NUMBER IS
BEGIN
RETURN x + y;
END add_numbers;
FUNCTION add_numbers(x NUMBER, y NUMBER, z
NUMBER) RETURN NUMBER IS
BEGIN
RETURN x + y + z;
END add_numbers;
END
math_operations;
/
Executing
Overloaded Functions in SQL*Plus
DECLARE
result NUMBER;
BEGIN
result := math_operations.add_numbers(5,
10);
DBMS_OUTPUT.PUT_LINE('Sum of two numbers: '
|| result);
END;
/
DECLARE
result NUMBER;
BEGIN
result := math_operations.add_numbers(5, 10,
15);
DBMS_OUTPUT.PUT_LINE('Sum of three numbers:
' || result);
END;
/
Comments
Post a Comment