0% found this document useful (0 votes)
3 views9 pages

PL/SQL Programs: Fibonacci, Factorial, and More

I want this

Uploaded by

selvi13082005
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views9 pages

PL/SQL Programs: Fibonacci, Factorial, and More

I want this

Uploaded by

selvi13082005
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

PL/SQL PROGRAMS

[Link] Series
DECLARE
a NUMBER := 0;
b NUMBER := 1;
c NUMBER;
i NUMBER := 1;
n NUMBER := 10; -- Change this number for how many terms you
want
BEGIN
DBMS_OUTPUT.PUT_LINE('Position Fibonacci_Number');
WHILE i <= n LOOP
DBMS_OUTPUT.PUT_LINE(i || ' ' || a);
c := a + b;
a := b;
b := c;
i := i + 1;
END LOOP;
END
/
OUTPUT
[Link]
DECLARE
n NUMBER := 5; -- Change this to control the limit
i NUMBER := 1;
fact NUMBER := 1;
BEGIN
DBMS_OUTPUT.PUT_LINE('Number Factorial');
WHILE i <= n LOOP
fact := fact * i;
DBMS_OUTPUT.PUT_LINE('Factorial of ' || i || ' is ' || fact);
i := i + 1;
END LOOP;
END;
/

OUTPUT
[Link] Reverse
DECLARE
input_str VARCHAR2(255) := 'data base'; -- Change input here
reversed_str VARCHAR2(255) := '';
i NUMBER;
BEGIN
i := LENGTH(input_str);
WHILE i > 0 LOOP
reversed_str := reversed_str || SUBSTR(input_str, i, 1);
i := i - 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Original String: ' || input_str);
DBMS_OUTPUT.PUT_LINE('Reversed String: ' || reversed_str);
END;
/

OUTPUT
[Link] of Series
DECLARE
n NUMBER := 10; -- Change this value for N
i NUMBER := 1;
total_sum NUMBER := 0;
BEGIN
WHILE i <= n LOOP
total_sum := total_sum + i;
i := i + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('N = ' || n);
DBMS_OUTPUT.PUT_LINE('Sum of Series = ' || total_sum);
END;
/

OUTPUT

[Link]
CREATE TABLE Books (
book_id NUMBER PRIMARY KEY,
title VARCHAR2(100),
author VARCHAR2(100),
quantity NUMBER
);

OUTPUT: Table created.


CREATE TABLE Book_Log (
log_id NUMBER PRIMARY KEY,
book_id NUMBER,
action VARCHAR2(50),
action_date DATE
);

OUTPUT: Table created.


INSERT INTO Books (book_id, title, author, quantity)
VALUES (1, 'Database Systems', 'Navathe', 10);

OUTPUT: 1 row(s) inserted.


CREATE SEQUENCE Book_Log_seq START WITH 1 INCREMENT BY 1;
OUTPUT: Sequence created.
SELECT * FROM Books;

OUTPUT

BOOK_ID TITLE AUTHOR QUANTITY

1 Database Systems Navathe 10


SELECT *FROM Book_Log;

OUTPUT
LOG_ID BOOK_ID ACTION ACTION_DATE

1 1 Book Added 27-AUG-25

CREATE OR REPLACE TRIGGER trg_after_book_insert


AFTER INSERT ON Books
FOR EACH ROW
BEGIN
INSERT INTO Book_Log (log_id, book_id, action, action_date)
VALUES (Book_Log_seq.NEXTVAL, :NEW.book_id, 'Book Added',
SYSDATE);
END;
\

OUTPUT: Trigger created.


Cursor
CREATE TABLE student_mark_analysis (
student_id NUMBER GENERATED BY DEFAULT AS IDENTITY
PRIMARY KEY,
student_name VARCHAR2(100),
subject VARCHAR2(50),
marks NUMBER
);

INSERT INTO student_mark_analysis (student_name, subject, marks)


VALUES ('John', 'Math', 85);
INSERT INTO student_mark_analysis (student_name, subject, marks)
VALUES ('Alice', 'Science', 90);
INSERT INTO student_mark_analysis (student_name, subject, marks)
VALUES ('Bob', 'English', 78);

SET SERVEROUTPUT ON;

DECLARE
CURSOR mark_cursor IS
SELECT student_name, subject, marks FROM
student_mark_analysis;
s_name student_mark_analysis.student_name%TYPE;
sub student_mark_analysis.subject%TYPE;
mark student_mark_analysis.marks%TYPE;
BEGIN
OPEN mark_cursor;
LOOP
FETCH mark_cursor INTO s_name, sub, mark;
EXIT WHEN mark_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Student: ' || s_name || ', Subject: '
|| sub || ', Marks: ' || mark);
END LOOP;
CLOSE mark_cursor;
END;
/

OUTPUT

You might also like