dbms lab
dbms lab
DECLARE
BEGIN
largest := num1;
largest := num2;
ELSE
largest := num3;
END IF;
END;
OUTPUT:-
3. Build a PL/SQL program to generate all prime numbers below 100.
DECLARE
-- Declare variables
BEGIN
IF (i MOD j = 0) THEN
END IF;
END LOOP;
IF is_prime THEN
DBMS_OUTPUT.PUT_LINE(i);
END IF;
END LOOP;
END;
OUTPUT:-
4. Construct a PL/SQL program to demonstrate %type and %row type attributes.
CREATE TABLE employees (
emp_id NUMBER(5),
emp_name VARCHAR2(50),
salary NUMBER(10,2),
dept_id NUMBER(5)
);
DECLARE
v_emp_id employees.emp_id%TYPE;
v_emp_name employees.emp_name%TYPE;
emp_record employees%ROWTYPE;
BEGIN
v_emp_id :=142;
v_emp_name := 'Sachin Kumar';
DBMS_OUTPUT.PUT_LINE('Employee Details:');
DBMS_OUTPUT.PUT_LINE('ID: ' || emp_record.emp_id);
DBMS_OUTPUT.PUT_LINE('Name: ' || emp_record.emp_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_record.salary);
DBMS_OUTPUT.PUT_LINE('Department ID: ' || emp_record.dept_id);
END;
/
OUTPUT:-
5. Develop a PL/SQL procedure to find reverse of a given number.
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE ReverseNumber IS
v_number NUMBER; -- variable to hold user input
v_reverse NUMBER := 0;
v_temp NUMBER;
BEGIN
v_number := &Enter_a_number;
v_temp := v_number;
WHILE v_temp > 0 LOOP
v_reverse := (v_reverse * 10) + MOD(v_temp, 10);
v_temp := TRUNC(v_temp / 10);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Reverse of ' || v_number || ' is ' || v_reverse);
END ReverseNumber;
/
BEGIN
ReverseNumber;
END;
/
OUTPUT:-
6. Create a PL/SQL procedure to update the salaries of all employees by 10% in
their basic pay.
CURSOR emp_cursor IS
SELECT EMPLOYEE_ID, SALARY
FROM EMPLOYEES;
v_employee_id EMPLOYEES.EMPLOYEE_ID%TYPE;
v_old_salary EMPLOYEES.SALARY%TYPE;
v_new_salary EMPLOYEES.SALARY%TYPE;
BEGIN
FOR emp_rec IN emp_cursor LOOP
v_employee_id := emp_rec.EMPLOYEE_ID;
v_old_salary := emp_rec.SALARY;
v_new_salary := v_old_salary * 1.10;
UPDATE EMPLOYEES
SET SALARY = v_new_salary
WHERE EMPLOYEE_ID = v_employee_id;
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || v_employee_id ||
' - Old Salary: ' || v_old_salary ||
' - New Salary: ' || v_new_salary);
END LOOP;
COMMIT;
OUTPUT:-
7. Execute a PL/SQL procedure to demonstrate IN, OUT and INOUT parameters.
CREATE OR REPLACE PROCEDURE Param_Demo (
p_num IN NUMBER,
p_double OUT NUMBER,
p_inout_num INOUT NUMBER
) IS
BEGIN
p_double := p_num * 2;
p_inout_num := p_inout_num + 15;
DBMS_OUTPUT.PUT_LINE('Inside Procedure:');
DBMS_OUTPUT.PUT_LINE('IN Parameter (p_num): ' || p_num);
DBMS_OUTPUT.PUT_LINE('OUT Parameter (Double of p_num): ' || p_double);
DBMS_OUTPUT.PUT_LINE('INOUT Parameter (Modified Value): ' || p_inout_num);
END Param_Demo;
/
DECLARE
v_num NUMBER := 6;
v_double NUMBER;
v_inout_num NUMBER := 10;
BEGIN
Param_Demo(p_num => v_num, p_double => v_double, p_inout_num => v_inout_num);
DBMS_OUTPUT.PUT_LINE('After Procedure Execution:');
DBMS_OUTPUT.PUT_LINE('OUT Parameter (Double of Number): ' || v_double);
DBMS_OUTPUT.PUT_LINE('INOUT Parameter (Modified Value): ' || v_inout_num);
END;
/
OUTPUT:-