set serveroutput on size 32000 -- show errors; -- Question 1: Retailer detail create or replace procedure RetailerDetail (id IN Retailers.RetailerId%TYPE) as retailer_id Retailers.RetailerId%TYPE; retailer_name Retailers.RetailerName%TYPE; retailer_address Retailers.Address%TYPE; retailer_orders Orders.Count%TYPE; retailer_bestseller_id Products.ProductId%TYPE; retailer_bestseller Products.ProductName%TYPE; retailer_bestseller_count Orders.Count%TYPE; -- CURSOR retailer_cursor IS SELECT RetailerId FROM Retailers WHERE RetailerId=id; -- retailer_entry retailer_cursor%ROWTYPE; CURSOR order_cursor IS SELECT Count, OrderId FROM Orders WHERE RetailerId=id; order_entry order_cursor%ROWTYPE; BEGIN SELECT RetailerName INTO retailer_name FROM Retailer WHERE RetailerId=id; SELECT Address INTO retailer_address FROM Retailer WHERE RetailerId=id; SELECT SUM(Count) INTO retailer_orders FROM Orders WHERE RetailerId=id; SELECT INTO retailer_orders FROM Orders WHERE RetailerId=id; dbms_output.put_line('Retailer Name: ' || retailer_name); dbms_output.put_line('Retailer Address: ' || retailer_address); dbms_output.put_line('Retailer Total Orders: ' || retailer_orders); END RetailerDetail; / show error procedure RetailerDetail; -- make test cases yourselves BEGIN RetailerDetail(1); end; / -- Queation 2: Monthly delay report create or replace procedure MonthlyDelayReport as BEGIN END MonthlyDelayReport; / BEGIN MonthlyDelayReport; End; / -- Question 3: Find the product with least profit in each category create or replace procedure LeastProfitProduct as BEGIN END LeastProfitProduct; / BEGIN LeastProfitProduct; END; / -- Queation 4: New table for retailer product category distribution create table RetailerCatergoryTable(RetailerId integer, Electronic integer, Apparel integer, Books integer, primary key(RetailerId)); create or replace procedure RetailerProductCatergory as BEGIN END RetailerProductCatergory; / BEGIN RetailerProductCatergory; END; / select * from RetailerCatergoryTable; drop table RetailerCatergoryTable; -- Question 5: Exception Handle create or replace procedure CustomerProductInfo(cid IN Customers.CustomerId%TYPE, pid IN Products.ProductId%TYPE) as BEGIN EXCEPTION END CustomerProductInfo; / BEGIN CustomerProductInfo(1,1); END; / BEGIN CustomerProductInfo(-1,1); END; /