Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. create or replace procedure buyTracks(custId int, boughtTracks listOfTracksType) AS
  2.  
  3. customerData customer%rowtype;
  4. invoiceId int;
  5.  
  6. BEGIN
  7. select * into customerData
  8. from customer
  9. where customerid = custid;
  10.  
  11. select max(invoiceid)
  12. into invoiceId
  13. from invoice;
  14.  
  15. insert into invoice values(invoiceId + 1, custId, SYSDATE(),
  16. customerData.address, customerData.city,
  17. customerData.state, customerData.country,
  18. customerData.postalcode);
  19.  
  20. for i in 1..boughtTracks.count
  21. loop
  22. ADDTRACKTOINVOICE(invoiceId, boughtTracks(i), 1);
  23. end loop;
  24.  
  25. END;
  26. /
  27.  
  28. CREATE or REPLACE PROCEDURE ADDTRACKTOINVOICE(invoice int, boughtTrack int, trackQuantity int) AS
  29.  
  30. newId int;
  31. trackUnitPrice float;
  32.  
  33. BEGIN
  34. select unitprice
  35. into trackUnitPrice
  36. from track
  37. where trackid = boughtTrack;
  38.  
  39. select (max(invoicelineid)+1)
  40. into newId
  41. from invoiceline;
  42.  
  43. insert into invoiceline values (newID , invoice, boughtTrack, trackUnitPrice, trackQuantity);
  44.  
  45. DBMS_OUTPUT.PUT_LINE('invoiceLineId -> ' || newId);
  46. DBMS_OUTPUT.PUT_LINE('invoiceId -> ' || invoice );
  47. DBMS_OUTPUT.PUT_LINE('trackId -> ' || boughtTrack);
  48. DBMS_OUTPUT.PUT_LINE('unitPrice -> ' || trackUnitPrice);
  49. DBMS_OUTPUT.PUT_LINE('quantity -> ' || trackQuantity);
  50. END;
  51.  
  52.  
  53.  
  54. DECLARE
  55. tracks listOfTracksType := listOfTracksType();
  56. BEGIN
  57. tracks.extend(4);
  58. tracks(1) := 3429;
  59. tracks(2) := 3346;
  60. tracks(3) := 335;
  61. tracks(4) := 338;
  62. buyTracks(59, tracks);
  63. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement