The Fibonacci series is a sequence of numbers where each number is the sum of the two preceding ones, starting from 0 and 1. This sequence has numerous applications in mathematics and computer science. In this article, we will explore how to write a PL/SQL program to find the Fibonacci series efficiently.

What is the Fibonacci Series?
The Fibonacci sequence follows this pattern:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...Mathematically, the formula for Fibonacci numbers is:
F(n) = F(n-1) + F(n-2), where F(0) = 0 and F(1) = 1PL/SQL provides an efficient way to generate this sequence using loops or recursion.
PLSQL Program to Generate Fibonacci Series Using a Loop
Below is a PL/SQL program to generate Fibonacci numbers up to a given limit using a loop:
DECLARE
num1 NUMBER := 0;
num2 NUMBER := 1;
temp NUMBER;
counter NUMBER := 10; -- Change this to generate more terms
BEGIN
DBMS_OUTPUT.PUT_LINE('Fibonacci Series:');
DBMS_OUTPUT.PUT_LINE(num1);
DBMS_OUTPUT.PUT_LINE(num2);
FOR i IN 3..counter LOOP
temp := num1 + num2;
DBMS_OUTPUT.PUT_LINE(temp);
num1 := num2;
num2 := temp;
END LOOP;
END;
/Explanation:
- We initialize
num1as 0 andnum2as 1. - A loop runs from 3 to the desired count.
- Inside the loop, we calculate the next Fibonacci number and update
num1andnum2.
PLSQL Program to Generate Fibonacci Series Using Recursion
CREATE OR REPLACE FUNCTION fibonacci(n IN NUMBER) RETURN NUMBER IS
BEGIN
IF n = 0 THEN RETURN 0;
ELSIF n = 1 THEN RETURN 1;
ELSE RETURN fibonacci(n-1) + fibonacci(n-2);
END IF;
END fibonacci;
/
DECLARE
n NUMBER := 10; -- Change this for more terms
BEGIN
FOR i IN 0..n-1 LOOP
DBMS_OUTPUT.PUT_LINE(fibonacci(i));
END LOOP;
END;
/Explanation:
- The function
fibonacci(n)calculates the Fibonacci number recursively. - The anonymous block calls this function in a loop to print the sequence.
Performance Considerations
- Loop-based approach is more efficient as recursion in PL/SQL can lead to stack overflow for large inputs.
- Using a table to store Fibonacci numbers can optimize performance.
CREATE TABLE fibonacci_numbers (term NUMBER, value NUMBER);
DECLARE
num1 NUMBER := 0;
num2 NUMBER := 1;
temp NUMBER;
counter NUMBER := 10;
BEGIN
INSERT INTO fibonacci_numbers VALUES (1, num1);
INSERT INTO fibonacci_numbers VALUES (2, num2);
FOR i IN 3..counter LOOP
temp := num1 + num2;
INSERT INTO fibonacci_numbers VALUES (i, temp);
num1 := num2;
num2 := temp;
END LOOP;
COMMIT;
END;
/This approach allows retrieving Fibonacci numbers from the database efficiently:
SELECT * FROM fibonacci_numbers;Conclusion
We have explored multiple PL/SQL programs to find the Fibonacci series using loops, recursion, and database storage. The loop-based approach is optimal for performance, while recursion helps in understanding the logic. Using a database table provides a structured way to store and retrieve values.
Start implementing Fibonacci series in PL/SQL and enhance your SQL skills! 🚀
For more SQL-related discussions, visit our SQL Queries Community. Also, check out this comprehensive guide on Fibonacci Sequence – MathWorld to deepen your understanding of Fibonacci numbers.