1.
**Multiplication of 5 table using for and while loop
**Using for loop
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('5 x ' || i || ' = ' || (5 * i));
END LOOP;
END;
/
**Using while loop
DECLARE
i NUMBER := 1;
BEGIN
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE('5 x ' || i || ' = ' || (5 * i));
i := i + 1;
END LOOP;
END;
/
2.**Case of day of week
DECLARE
day_num NUMBER;
BEGIN
day_num :=:day_num;
CASE day_num
WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('Monday');
WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('Tuesday');
WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('Wednesday');
WHEN 4 THEN DBMS_OUTPUT.PUT_LINE('Thursday');
WHEN 5 THEN DBMS_OUTPUT.PUT_LINE('Friday');
WHEN 6 THEN DBMS_OUTPUT.PUT_LINE('Saturday');
WHEN 7 THEN DBMS_OUTPUT.PUT_LINE('Sunday');
ELSE
DBMS_OUTPUT.PUT_LINE('Invalid input. Enter a number between 1 and 7.');
END CASE;
END;
/
3.**Cursor
CREATE TABLE students (id NUMBER PRIMARY KEY,name
VARCHAR2(50),department VARCHAR2(50));
INSERT INTO students VALUES (1, 'Anil', 'Computer');
INSERT INTO students VALUES (2, 'Bhavesh', 'Mechanical');
INSERT INTO students VALUES (3, 'Chentan', 'Computer');
INSERT INTO students VALUES (4, 'Dia', 'Electrical');
INSERT INTO students VALUES (5, 'Elena', 'Computer');
DECLARE
CURSOR comp_students IS
SELECT * FROM students WHERE department = 'Computer';
student_record students%ROWTYPE;
BEGIN
OPEN comp_students;
LOOP
FETCH comp_students INTO student_record;
EXIT WHEN comp_students%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('ID: ' || student_record.id || ', Name: ' ||
student_record.name);
END LOOP;
CLOSE comp_students;
END;
/
4.**Pre-defined exception :NO_DATA_FOUND
CREATE TABLE employees (id NUMBER PRIMARY KEY,name
VARCHAR2(50),salary NUMBER);
INSERT INTO employees VALUES (1, 'John', 50000);
INSERT INTO employees VALUES (2, 'Alice', 60000);
INSERT INTO employees VALUES (3, 'Bob', 55000);
INSERT INTO employees VALUES (4, 'Diana', 70000);
INSERT INTO employees VALUES (5, 'Eve', 65000);
DECLARE
emp_id NUMBER := :emp_id;
emp_salary NUMBER;
BEGIN
BEGIN
SELECT salary INTO emp_salary FROM employees WHERE id = emp_id;
DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_salary);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee ID not found.');
END;
END;
/
5.**FUNCTION
CREATE OR REPLACE FUNCTION max_value(a NUMBER, b NUMBER)
RETURN NUMBER IS
BEGIN
IF a > b THEN
RETURN a;
ELSE
RETURN b;
END IF;
END;
/
DECLARE
val1 NUMBER := 10;
val2 NUMBER := 20;
result NUMBER;
BEGIN
result := max_value(val1, val2);
DBMS_OUTPUT.PUT_LINE('Maximum value: ' || result);
END;
/
6.**Trigger
CREATE OR REPLACE TRIGGER dept_update_trigger
AFTER UPDATE ON department
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('Department record updated. Old Name: ' ||
:OLD.name || ', New Name: ' || :NEW.name);
END;
/
CREATE TABLE department (id NUMBER PRIMARY KEY,name VARCHAR2(50));
INSERT INTO department VALUES (1, 'Computer Science');
INSERT INTO department VALUES (2, 'Mechanical Engineering');
INSERT INTO department VALUES (3, 'Electrical Engineering');
INSERT INTO department VALUES (4, 'Civil Engineering');
UPDATE department SET name = 'Information Technology' WHERE id = 1;