Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- create or replace procedure buyTracks(custId int, boughtTracks listOfTracksType) AS
- customerData customer%rowtype;
- invoiceId int;
- BEGIN
- select * into customerData
- from customer
- where customerid = custid;
- select max(invoiceid)
- into invoiceId
- from invoice;
- insert into invoice values(invoiceId + 1, custId, SYSDATE(),
- customerData.address, customerData.city,
- customerData.state, customerData.country,
- customerData.postalcode);
- for i in 1..boughtTracks.count
- loop
- ADDTRACKTOINVOICE(invoiceId, boughtTracks(i), 1);
- end loop;
- END;
- /
- CREATE or REPLACE PROCEDURE ADDTRACKTOINVOICE(invoice int, boughtTrack int, trackQuantity int) AS
- newId int;
- trackUnitPrice float;
- BEGIN
- select unitprice
- into trackUnitPrice
- from track
- where trackid = boughtTrack;
- select (max(invoicelineid)+1)
- into newId
- from invoiceline;
- insert into invoiceline values (newID , invoice, boughtTrack, trackUnitPrice, trackQuantity);
- DBMS_OUTPUT.PUT_LINE('invoiceLineId -> ' || newId);
- DBMS_OUTPUT.PUT_LINE('invoiceId -> ' || invoice );
- DBMS_OUTPUT.PUT_LINE('trackId -> ' || boughtTrack);
- DBMS_OUTPUT.PUT_LINE('unitPrice -> ' || trackUnitPrice);
- DBMS_OUTPUT.PUT_LINE('quantity -> ' || trackQuantity);
- END;
- DECLARE
- tracks listOfTracksType := listOfTracksType();
- BEGIN
- tracks.extend(4);
- tracks(1) := 3429;
- tracks(2) := 3346;
- tracks(3) := 335;
- tracks(4) := 338;
- buyTracks(59, tracks);
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement