Professional Documents
Culture Documents
5. Trigger
--output
DECLARE
a integer := 45;
b integer := 12;
c integer; f
real;
BEGIN
c := a + b;
dbms_output.put_line('Value of c: ' || c);
f := 70.0/3.0;
dbms_output.put_line('Value of f: ' || f);
END;
/
--output
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No such customer!');
WHEN others THEN
dbms_output.put_line('Error!');
END;
/
DECLARE v_salary
hr.employees.salary%TYPE; v_fname
hr.employees.first_name%TYPE;
CURSOR emp_cursor IS
SELECT salary, first_name , last_name
FROM hr.employees
Order by salary DESC;
BEGIN
FOR emp_sal in emp_cursor LOOP
EXIT WHEN emp_cursor%NOTFOUND OR emp_cursor%ROWCOUNT
= 6;
DBMS_OUTPUT.PUT_LINE (emp_sal.first_name ||' '||
emp_sal.last_name ||' :Rs '|| emp_sal.salary);
END LOOP;
END;
--output
4. Stored Procedure and Function
--Procedure
CREATE OR REPLACE PROCEDURE query_emp (p_amount IN
EMP.salary%Type, p_name IN Dept.name%Type )
IS
v_id number(3); BEGIN
select dep_id into v_id
from Dept where
name=p_name; update
EMP set
salary=salary+p_amount
where emp_id IN (select emp_id from works where dep_id=v_id);
END query_emp;
Select * from EMP
--function
CREATE OR REPLACE FUNCTION dname(
p_emp_id
IN Emp_emp.eid%TYPE
)
RETURN Dept_dept.dname%TYPE
IS
v_dname Dept_dept.dname%TYPE;
BEGIN
SELECT dname
INTO v_dname
FROM Dept_dept
WHERE did = (
SELECT did
FROM Works_works
WHERE eid = p_emp_id
);
RETURN v_dname;
END;
SELECT Emp_emp.eid, Emp_emp.ename, Emp_emp.age,
Emp_emp.salary , Dept_dept.did, Dept_dept.dname, Dept_dept.budget
FROM Emp_emp
FULL OUTER JOIN Dept_dept
ON Emp_emp.eid = Dept_dept.did; BEGIN
dbms_output.put_line('Department:
' || get_dname(02));
END;
--output
Function created.
5. Trigger
CREATE OR REPLACE TRIGGER display_salary_changes
:NEW.salary); dbms_output.put_line('Salary
END;
--output
Trigger created.
--output
Trigger created.