PLSQL Packages

Published: 23 April 2019
on channel: Hassle Free Labs
137
3

Demonstration of working of PL/SQL Packages:

Aim: To create PL/SQL Package with following procedures and functions

1. Procedures:

a. Print Total Quantity Sales Summary Report(SalesId, Date, Quantity and Total Quantity)

b. Print Total Quantity Sales Summary Report by Date wise

2. Functions:

a. Return employee name who made maximum sales till date

b. Return product name soled maximum quantity till date




Procedure :

STEP-1: Create the package named as ‘Sales package’ consisting of two procedures and two functions as follows:


create or replace package sales_pkg as

PROCEDURE sales_sid_proc;

PROCEDURE sales_date_proc;

FUNCTION max_emp_func RETURN char;

FUNCTION max_prod_func RETURN char;

end sales_pkg;

/


create or replace package body sales_pkg as

procedure sales_sid_proc is

s_sid sales.sid%type;

s_date sales."date"%type;

s_qty sales.qty%type;

tqty sales.qty%type;

CURSOR salescur IS

select sid, "date", qty from sales order by sid, "date";

BEGIN

tqty:=0;

dbms_output.put_line('SID' || ' '|| 'DATE' || ' ' || 'QTY' || ' ' || 'TOTAL QTY');

dbms_output.put_line('---------' || ' '|| '--------' || ' ' || '-------' || ' ' || '---------');

OPEN salescur;

LOOP

FETCH salescur into s_sid, s_date, s_qty;

tqty:=tqty+s_qty;

EXIT WHEN salescur%notfound;

dbms_output.put_line(s_sid || ' '|| s_date || ' ' || s_qty || ' ' || tqty);

END LOOP;

CLOSE salescur;

end sales_sid_proc;




procedure sales_date_proc is

s_sid sales.sid%type;

s_date sales."date"%type;

s_qty sales.qty%type;

tqty sales.qty%type;

temp1 sales.sid%type;

temp2 sales.sid%type;

CURSOR salescur IS

select sid, "date", qty from sales order by "date";

BEGIN

tqty:=0;

dbms_output.put_line('SID' || ' '|| 'DATE' || ' ' || 'QTY' || ' ' || 'TOTAL QTY');

dbms_output.put_line('---------' || ' '|| '--------' || ' ' || '-------' || ' ' || '---------');

OPEN salescur;

LOOP

FETCH salescur into s_sid, s_date, s_qty;

tqty:=tqty+s_qty;

EXIT WHEN salescur%notfound;

dbms_output.put_line(s_sid || ' '|| s_date || ' ' || s_qty || ' ' || tqty);

END LOOP;

CLOSE salescur;

end sales_date_proc;



function max_emp_func return char is

max_emp varchar(20);

BEGIN

Select ename into max_emp from emp inner join sales on emp.eid=sales.eid where sales.qty=(select max(qty) from sales);

RETURN max_emp;

end max_emp_func;



FUNCTION max_prod_func RETURN char iS

max_prod varchar(20);

BEGIN

Select pname into max_prod from prod inner join sales on prod.pid=sales.pid where sales.qty=(select max(qty) from sales);

RETURN max_prod;

END max_prod_func;


END sales_pkg;

/




STEP-2: Call the procedures and functions from the above created package as follows:


set serveroutput on;

begin

dbms_output.put_line('Sales Summary Report');

sales_pkg.sales_sid_proc;

dbms_output.put_line('Sales Summary Report Date wise');

sales_pkg.sales_date_proc;

dbms_output.put_line('Employee who made highest sales: '||sales_pkg.max_emp_func);

dbms_output.put_line('The highest sold product is: '||sales_pkg.max_prod_func);

end;

/


Watch video PLSQL Packages online without registration, duration hours minute second in high quality. This video was added by user Hassle Free Labs 23 April 2019, don't forget to share it with your friends and acquaintances, it has been viewed on our site 13 once and liked it people.