ADBMS Assignment
ADBMS Assignment
Enrollment : SR23BSCS006
Div :SY CS_B
Subject : ADBMS
Example 1:
TABLE CREATION:
PL/SQL BLOCK:
DECLARE
CURSOR outercursor IS
SELECT LibraryID,LibraryName
FROM Libraries;
lib_id Libraries.LibraryID%TYPE;
lib_name Libraries.LibraryName%TYPE;
CURSOR innercursor IS
SELECT b.Title,br.BookID
FROM Books b
JOIN BorrowRecords br
ON b.BookID=br.BookID
WHERE br.LibraryID=lib_id;
b_title Books.Title%TYPE;
b_id BorrowRecords.BookID%TYPE;
BEGIN
OPEN outercursor;
LOOP
FETCH outercursor INTO lib_id,lib_name;
EXIT WHEN outercursor%NOTFOUND;
OPEN innercursor;
LOOP
FETCH innercursor INTO b_title,b_id;
EXIT WHEN innercursor%NOTFOUND;
END LOOP;
CLOSE innercursor;
dbms_output.put_line(' ');
END LOOP;
CLOSE outercursor;
END;
/
OUTPUT:
Library Name: Central Library
Book Title: The Great Gatsby, Book ID: 101
Book Title: 1984, Book ID: 103
Statement processed.
Example 2:
TABLE CREATION :
CREATE TABLE Students (
StudentID NUMBER PRIMARY KEY,
StudentName VARCHAR2(100)
);
PL/SQL BLOCK:
DECLARE
CURSOR student_cursor IS
SELECT StudentID, StudentName FROM Students;
v_StudentID Students.StudentID%TYPE;
v_StudentName Students.StudentName%TYPE;
CURSOR course_cursor IS
SELECT CourseID, CourseName
FROM Courses
WHERE StudentID = v_StudentID;
v_CourseID Courses.CourseID%TYPE;
v_CourseName Courses.CourseName%TYPE;
BEGIN
OPEN student_cursor;
LOOP
FETCH student_cursor INTO v_StudentID, v_StudentName;
EXIT WHEN student_cursor%NOTFOUND;
OPEN course_cursor;
LOOP
FETCH course_cursor INTO v_CourseID, v_CourseName;
EXIT WHEN course_cursor%NOTFOUND;
IF v_CourseName = 'Physics' THEN
UPDATE Courses
SET CourseName = 'Advanced Physics'
WHERE CourseID = v_CourseID;
END LOOP;
CLOSE student_cursor;
END;
/
OUTPUT:
Student: Alice Johnson
Course: Biology
Course: History
Student: John Doe
Course: Mathematics
Course Physics updated to Advanced Physics
Student: Jane Smith
Course: Chemistry
1 row(s) updated.