Experiment-3 DBMS
Experiment-3 DBMS
15000 12% 8%
12000 10% 6%
9000 7% 4%
OTHERS 5% 200/-
PL/SQL PROGRAM:
DECLARE
BASIC NUMBER;
HRA NUMBER;
DA NUMBER;
NET NUMBER;
BEGIN
BASIC := &BASIC_SALARY;
IF BASIC > 15000 THEN
HRA := BASIC * .12;
DA := BASIC * .08;
ELSIF BASIC > 12000 THEN
HRA := BASIC * .1;
DA := BASIC * .06;
ELSIF BASIC > 9000 THEN
HRA := BASIC * .07;
DA := BASIC * .04;
ELSE
HRA := BASIC * .05;
DA := BASIC * 200;
END IF;
NET := BASIC + HRA + DA;
DBMS_OUTPUT.PUT_LINE ('BASIC: ' || BASIC);
DBMS_OUTPUT.PUT_LINE ('HRA: ' || HRA);
DBMS_OUTPUT.PUT_LINE ('DA: ' || DA);
DBMS_OUTPUT.PUT_LINE ('NET: ' || NET);
END;
EXPECTED OUTPUT:
pl/sql procedure successfully completed
OUTPUT:
2) Whenever salary is updated and its value becomes less than 5000 a trigger
has to be raised preventing the operation.
PL/SQL PROGRAM
Create or replace trigger sal
Before insert or update on emp11
for each row
begin
if :new.sal<5000 then
raise_application_error(-20456,'the 5000 below sal not accepted');
end if;
end;
EXPECTED OUTPUT:
pl/sql procedure successfully completed
OUTPUT:
PL/SQL PROGRAM
PL/SQL PROGRAM:
DECLARE
v_dob DATE:=&v_dob;
v_your_age
NUMBER(3,1)
Emp_name
varchar2(10);
BEGIN
v_your_age:= TRUNC (MONTHS_BETWEEN(SYSDATE,v_dob))/12;
DBMS_OUTPUT.PUT_LINE ('Your age is'|| v_your_age);
IF
v_your_age>65
THEN
PL/SQL program:
number(10));
date_of_tran
create sequence s1
increment by 1
start with 1
Maxvalue 100
Nocycle
Nocache;
EXPECTED OUTPUT:
Exec(1001,D,6000);
OUTPUT:
6) As a designer identify the PL/SQL procedures necessary and create them using
cursors.
PL/SQL program
DECLARE CURSOR C1 IS SELECT EMPNO,ENAME ,DEPTNO
FROM EMP;EMPNUM EMP.EMPNO%TYPE;
EMPNAME EMP.ENAME%TYPE;
DEPTNUM EMP.DEPTNO%TYPE;
BEGIN
OPEN C1;
LOOP
else
dbms_output.put_line(EMPNUM||' '||EMPNAME||' '||DEPTNUM);
end if;
END LOOP;
end;
EXPECTED OUTPUT:
PL/SQL Procedure successfully Created
OUTPUT: