cs348/Project_2/answer.sql
2018-11-05 15:36:14 -05:00

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;
/