0% found this document useful (0 votes)
16 views3 pages

New DOC Document

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

New DOC Document

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

-- Create the "employees" table

CREATE TABLE employee (


employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
email VARCHAR2(100),
salary NUMBER,
job_id VARCHAR2(50),
hire_date DATE,
department_id NUMBER,
da NUMBER;
hra NUMBER;
gross_salary NUMBER;
);
SELECT * FROM EMPLOYEE;
-- Create the "emp_mgmt" procedure for employee management
CREATE OR REPLACE PROCEDURE emp_mgmt(
p_emp_id IN NUMBER,
p_first_name IN VARCHAR2,
p_last_name IN VARCHAR2,
p_email IN VARCHAR2,
p_salary IN NUMBER,
p_job_id IN VARCHAR2,
p_hire_date IN DATE,
p_department_id IN NUMBER,
p_operation IN VARCHAR2) IS
BEGIN
IF p_operation = 'INSERT' THEN
INSERT INTO employee(employee_id, first_name, last_name, email, salary, job_id, hire_date,
department_id)
VALUES(p_emp_id, p_first_name, p_last_name, p_email, p_salary, p_job_id, p_hire_date,
p_department_id);
COMMIT;
ELSIF p_operation = 'UPDATE' THEN
UPDATE employee
SET first_name = p_first_name,
last_name = p_last_name,
email = p_email,
salary = p_salary,
job_id = p_job_id,
hire_date = p_hire_date,
department_id = p_department_id
WHERE employee_id = p_emp_id;
COMMIT;
ELSIF p_operation = 'DELETE' THEN
DELETE FROM employee WHERE employee_id = p_emp_id;
COMMIT;
END IF;
DBMS_OUTPUT.PUT_LINE('Employee management operation completed successfully');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END emp_mgmt;
/

-- Create the "manage_employee_salary" procedure for salary updates


CREATE OR REPLACE PROCEDURE manage_employee_salary(
p_emp_id IN NUMBER,
p_salary IN NUMBER) IS
BEGIN
UPDATE employee
SET salary = p_salary
WHERE employee_id = p_emp_id;
COMMIT;
DBMS_OUTPUT.PUT_LINE('Employee salary updated successfully');
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee not found.');
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END manage_employee_salary;
/

BEGIN
emp_mgmt(1001, 'John', 'Doe', '[email protected]', 60000, 'JOB001', TO_DATE('2023-10-31',
'YYYY-MM-DD'), 101, 'INSERT');
END;
/
BEGIN
emp_mgmt(1004, 'Maya', 'Chakravarthi', '[email protected]', 70000, 'JOB004',
TO_DATE('2010-10-12', 'YYYY-MM-DD'), 102, 'INSERT');
END;
/

select * from employee;


BEGIN
manage_employee_salary(1001, 65000);
END;
/

CREATE OR REPLACE PROCEDURE UPDATE_SALARY(M_EMPID IN INT) IS


DA_PERCENT NUMBER(10,2) := 0.05;
HRA_PERCENT NUMBER(10,2) := 0.10;
NEW_DA NUMBER(12,2);
NEW_HRA NUMBER(12,2);
NEW_GROSS_SAL NUMBER(12,2);
BEGIN
-- Retrieve the current salary of the employee
SELECT SALARY INTO NEW_GROSS_SAL FROM EMPLOYEE WHERE EMPLOYEE_ID = M_EMPID;

-- Calculate new DA and HRA


NEW_DA := NEW_GROSS_SAL * DA_PERCENT;
NEW_HRA := NEW_GROSS_SAL * HRA_PERCENT;

-- Calculate the new gross salary


NEW_GROSS_SAL := NEW_GROSS_SAL + NEW_DA + NEW_HRA;

-- Update the table with new values


UPDATE EMPLOYEE
SET DA = NEW_DA,
HRA = NEW_HRA,
GROSS_SALARY = NEW_GROSS_SAL
WHERE EMPLOYEE_ID = M_EMPID;

DBMS_OUTPUT.PUT_LINE('Updated salary for EMP_ID ' || M_EMPID);


EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee not found.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END UPDATE_SALARY;
/
BEGIN
UPDATE_SALARY(1001);
END;
/

You might also like