99 lines
2.3 KiB
SQL
Executable File
99 lines
2.3 KiB
SQL
Executable File
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;
|
|
/
|