Problem - Explicit Cursor
Write a PL/SQL program that uses an explicit cursor to retrieve and display the details of all books from the
BOOKS
table where the PRICE
is greater than 500. The program should display the following information for each qualifying book:
- BOOK_ID
- TITLE
- AUTHOR
- CATEGORY
- PRICE
Expected Output (Sample)
Sample result layout when the PL/SQL program is executed:
BOOK_ID | TITLE | AUTHOR | CATEGORY | PRICE |
---|---|---|---|---|
201 | Bangladesher Itihash | Sirajul Islam | History | 750 |
202 | Chharar Puthi | Sukumar Ray | Literature | 600 |
203 | Amar Bangladesh | Humayun Azad | Essay | 850 |
204 | Shesher Kobita | Rabindranath Tagore | Novel | 950 |
PL/SQL Program (Explicit Cursor)
Ensure SET SERVEROUTPUT ON
is enabled.
-- Create BOOKS table CREATE TABLE BOOKS ( BOOK_ID NUMBER(5) PRIMARY KEY, TITLE VARCHAR2(100) NOT NULL, AUTHOR VARCHAR2(100), CATEGORY VARCHAR2(50), PRICE NUMBER(8,2) ); -- Insert demo data INSERT INTO BOOKS (BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE) VALUES (201, 'Bangladesher Itihash', 'Sirajul Islam', 'History', 750); INSERT INTO BOOKS (BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE) VALUES (202, 'Chharar Puthi', 'Sukumar Ray', 'Literature', 600); INSERT INTO BOOKS (BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE) VALUES (203, 'Amar Bangladesh', 'Humayun Azad', 'Essay', 850); INSERT INTO BOOKS (BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE) VALUES (204, 'Shesher Kobita', 'Rabindranath Tagore', 'Novel', 950); INSERT INTO BOOKS (BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE) VALUES (205, 'Programming in C', 'E. Balagurusamy', 'Programming', 450); -- won't appear in PL/SQL (price < 500) COMMIT; SET SERVEROUTPUT ON; DECLARE CURSOR book_cur IS SELECT BOOK_ID, TITLE, AUTHOR, CATEGORY, PRICE FROM BOOKS WHERE PRICE > 500 ORDER BY BOOK_ID; v_book_id BOOKS.BOOK_ID%TYPE; v_title BOOKS.TITLE%TYPE; v_author BOOKS.AUTHOR%TYPE; v_category BOOKS.CATEGORY%TYPE; v_price BOOKS.PRICE%TYPE; BEGIN OPEN book_cur; LOOP FETCH book_cur INTO v_book_id, v_title, v_author, v_category, v_price; EXIT WHEN book_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE('BOOK_ID : ' || v_book_id); DBMS_OUTPUT.PUT_LINE('TITLE : ' || NVL(v_title, 'NULL')); DBMS_OUTPUT.PUT_LINE('AUTHOR : ' || NVL(v_author, 'NULL')); DBMS_OUTPUT.PUT_LINE('CATEGORY : ' || NVL(v_category, 'NULL')); DBMS_OUTPUT.PUT_LINE('PRICE : ' || v_price); DBMS_OUTPUT.PUT_LINE('----------------------------------------'); END LOOP; CLOSE book_cur; END; /
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন