DATA MANIPULATION IN BEGIN CLAUSE
BY SQL FUNCTION and REGULAR EXPRESSIONS
PL/SQL
By SQL function
·
UPPER()
character function
·
ROUND()
numeric function
·
MAX()
function
REGULAR
EXPRESSIONS
·
REGEXP_LIKE()
WE USING THREE TABLES
EMPLOYEE,
DEPARTMENT, WORKS_ON
Task
We want to extract the best employee name and
his bdate,gender,ssn,dept name,hours to do work as well as bonus from these
three tables and we
want to evaluate whether or not lived in a big city or a small town and also evaluate his/her address.
DECLARE
TYPE
EMPLOYEERecord
IS RECORD (ssn employee.ssn%TYPE,
LName employee.LName%TYPE,
DName department.DName%TYPE,
SEX employee.SEX%TYPE,
BDATE employee.BDATE%TYPE,
address employee.address%TYPE,
BonusPayment NUMBER(10),
HOURS WORKS_ON.HOURS%TYPE
);
BestEMPLOYEE EMPLOYEERecord;
BEGIN
SELECT essn, LName, DName,SEX,BDATE,address, 799,HOURS
INTO
BestEMPLOYEE
FROM employee, department,
works_on
WHERE employee.dno = department.dnumber
AND employee.ssn = works_on.essn
AND hours = (SELECT MAX(hours) FROM works_on)
;
dbms_output.put_line ('Best employee name: '
||
UPPER(BestEMPLOYEE.LName));
dbms_output.put_line ('Best employee name dept: '
||
UPPER(BestEMPLOYEE.DName));
dbms_output.put_line ('Best employee gender: '
||
UPPER(BestEMPLOYEE.SEX));
dbms_output.put_line ('Best employee BDATE: '
||
UPPER(BestEMPLOYEE.BDATE));
dbms_output.put_line ('Best employee bonus: '
||
ROUND(BestEMPLOYEE.BonusPayment * 1.24, 4));
dbms_output.put_line ('Best employee SSN: '
||
UPPER(BestEMPLOYEE.SSN));
dbms_output.put_line ('Best employee HOURS: '
||
UPPER(BestEMPLOYEE.HOURS));
IF
REGEXP_LIKE(BestEMPLOYEE.Address,
'[humble|spring]',
'i') THEN
dbms_output.put_line ('Best employee does not live
in a big city');
END IF;
dbms_output.put_line ('Best employee lives at '
|| BestEMPLOYEE.Address);
END;
anonymous block completed
Best employee name: NARAAN
Best employee name dept: RESEARCH
Best employee gender: M
Best employee BDATE: 15-SEP-52
Best employee bonus: 990.76
Best employee SSN: 666884444
Best employee HOURS: 40
Best employee does not live in a big city
Best employee lives at 975 Fire Oak, Humble, TX
No comments:
Post a Comment