HW Adbms
HW Adbms
Que 1.
This query retrieves and prints the details of personnel with salaries greater than
30,000 using a cursor loop.
Que2.
v_city branch.city%TYPE;
v_snum personnel.snum%TYPE;
v_salary1 NUMBER := 30000;
v_salary2 NUMBER(4) := 25000;
v_salary3 NUMBER := 20000;
v_salary personnel.salary%TYPE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO v_snum, v_city;
EXIT WHEN c1%NOTFOUND;
Que3
CREATE OR REPLACE PROCEDURE average_salary IS
average NUMBER(7, 2);
BEGIN
SELECT AVG(salary) INTO average FROM personnel;
DBMS_OUTPUT.PUT_LINE ('As of ' || SYSDATE);
DBMS_OUTPUT.PUT_LINE ('The average salary is ' || Average);
DBMS_OUTPUT.PUT_LINE ('Prepared by ' || USER);
END;
/
Que 4.
"ORA-00955: name is already used by an existing object"
Que 5.
CREATE OR REPLACE PROCEDURE average_salary(branchID CHAR) IS
Today DATE := SYSDATE;
Average NUMBER(7,2);
Begin
SELECT AVG(salary) INTO Average FROM Personnel WHERE div = branchID;
DBMS_OUTPUT.PUT_LINE ('As of ' || Today);
DBMS_OUTPUT.PUT_LINE ('The average for branch ' || branchID || ' is ' ||
Average);
DBMS_OUTPUT.PUT_LINE ('Prepared by ' || USER);
END;
/
Que 6.
OUtput:
4 inner procedure one
5 inner procedure one
6 inner procedure one
6 inner procedure two
7 inner procedure one
8 inner procedure one
8 inner procedure two
9 inner procedure one
10 inner procedure one
10 inner procedure two
Que 7.
BEGIN
SELECT div into v_divID
FROM branch WHERE divname=divisionName;
v_aveMiles := get_aveMiles(v_divID);
BEGIN
SELECT avg(Mileage)
INTO v_aveMiles FROM Transport
WHERE div = i_div;
RETURN v_aveMiles;
END get_aveMiles;
CREATE OR REPLACE FUNCTION get_maxMiles (i_div IN NUMBER)
RETURN number
IS
v_maxMiles Transport.Mileage%type; -- Variable to store the maximum mileage
BEGIN
SELECT max(Mileage)
INTO v_maxMiles FROM Transport
WHERE div = i_div;
RETURN v_maxMiles;
END get_maxMiles;
Que 8.