assignment 3 rdb ms
TRANSCRIPT
Assignment-3 (RDBMS)
Submitted To:-
Prof. Walid Belal
Submitted By:-
Karanvir Salwan
991311274
Sol-(part-1)
SET SERVEROUTPUT ON;
DECLARE
TYPE RecordTp IS RECORD
(i TRANSACTIONSImport.UsersID%TYPE,
j TRANSACTIONSImport.GENDER%TYPE,
k TRANSACTIONSImport.GIVENNAME%TYPE,
l TRANSACTIONSImport.MIDDLEINITIAL%TYPE,
m TRANSACTIONSImport.SURNAME%TYPE,
n TRANSACTIONSImport.STREETADDRESS%TYPE,
o TRANSACTIONSImport.EMAILADDRESS%TYPE,
p TRANSACTIONSImport.USERNAME%TYPE,
q TRANSACTIONSImport.TELEPHONENUMBER%TYPE,
r TRANSACTIONSImport.BIRTHDAY%TYPE,
s TRANSACTIONSImport.CITY%TYPE,
t TRANSACTIONSImport.STATE%TYPE,
u TRANSACTIONSImport.ZIPCODE%TYPE,
V TRANSACTIONSImport.COUNTRYFULL%TYPE);
--declare a nested table (outer array)
TYPE RecordHolderTp IS TABLE OF RecordTp;
RecordHolder RecordHolderTp;
--declare a cursor
CURSOR cr IS
SELECT distinct UsersID,GENDER,GIVENNAME,MIDDLEINITIAL,SURNAME,STREETADDRESS,EMAILADDRESS,USERNAME,TELEPHONENUMBER,BIRTHDAY,CITY,STATE,ZIPCODE,COUNTRYFULL FROM TRANSACTIONSImport order by UsersID;
BEGIN
OPEN cr; --open cursor
LOOP
-- bulk fetch the cursor into the multidimensional
FETCH cr BULK COLLECT INTO RecordHolder;
EXIT WHEN cr%NOTFOUND;
END LOOP;
CLOSE cr; -- close the cursor
--bulk insert the values in multidimensional
--array to Users table
FORALL x IN RecordHolder.FIRST ..RecordHolder.LAST
Insert INTO Users VALUES
(RecordHolder(x).i, RecordHolder(x).j,RecordHolder(x).k,RecordHolder(x).l,RecordHolder(x).m,RecordHolder(x).n,RecordHolder(x).o,RecordHolder(x).p,RecordHolder(x).q,RecordHolder(x).r,RecordHolder(x).s,RecordHolder(x).t,RecordHolder(x).u,RecordHolder(x).v);
END;
/
Sol-(part-2)
SET SERVEROUTPUT ON;
DECLARE
TYPE RecordTp IS RECORD
(i TRANSACTIONSImport.TRANSID%TYPE,
j TRANSACTIONSImport.DOWNLOADS%TYPE,
k TRANSACTIONSImport.UPLOADS%TYPE,
l TRANSACTIONSImport.CONNECTDATE%TYPE,
m TRANSACTIONSImport.USERSID%TYPE);
--declare a nested table (outer array)
TYPE RecordHolderTp IS TABLE OF RecordTp;
RecordHolder RecordHolderTp;
--declare a cursor
CURSOR cr IS
SELECT distinct TRANSID,DOWNLOADS,UPLOADS,CONNECTDATE,USERSID
FROM TRANSACTIONSImport Order by USERSID;
BEGIN
OPEN cr; --open cursor
LOOP
-- bulk fetch the cursor into the multidimensional
FETCH cr BULK COLLECT INTO RecordHolder;
EXIT WHEN cr%NOTFOUND;
END LOOP;
CLOSE cr; -- close the cursor
--bulk insert the values in multidimensional
--array to Users table
FORALL x IN RecordHolder.FIRST ..RecordHolder.LAST
Insert INTO TRANSACTIONS VALUES
(RecordHolder(x).i, RecordHolder(x).j/1024,RecordHolder(x).k/1024 ,RecordHolder(x).j/1024,RecordHolder(x).k/1024, RecordHolder(x).l,RecordHolder(x).m);
END;
/