1) 레퍼런스 변수로 EID,ENAME,JCODE,SAL, DTITLE선언하고
자료형 EMPLOYEE(EMP_ID,EMP_NAME,JOB_CODE,SALARY) , DEPARTMENT(DEPT_TITLE) 참조
사용자가 입력한 사번에 해당하는 사원을 조회해서 각 변수에 대입한 후 출력
DECLARE
EID EMPLOYEE.EMP_ID%TYPE;
ENAME EMPLOYEE.EMP_NAME%TYPE;
JCODE EMPLOYEE.JOB_CODE%TYPE;
SALARY EMPLOYEE.SALARY%TYPE;
DTITLE DEPARTMENT.DEPT_TITLE%TYPE;
BEGIN
SELECT EMP_ID,EMP_NAME,JOB_CODE,SALARY,DEPT_TITLE
INTO EID,ENAME,JCODE,SALARY,DTITLE
FROM EMPLOYEE
JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID)
WHERE EMP_ID = &사번;
DBMS_OUTPUT.PUT_LINE('EID : '|| EID);
DBMS_OUTPUT.PUT_LINE('ENAME : '|| ENAME);
DBMS_OUTPUT.PUT_LINE('JCODE : '|| JCODE);
DBMS_OUTPUT.PUT_LINE('SALARY : '|| SALARY);
DBMS_OUTPUT.PUT_LINE('DTITLE : '|| DTITLE);
END;
/
2) 특정사원의 사번, 이름, 부서명, 근무국가코드를 조회한후 변수에 대입하여 출력
단, 근무국가 코드가 'KO' 일 경우 TEAM 에 ' 국내팀' 아닐경우 '해외팀' 으로 출력
DECLARE
EID EMPLOYEE.EMP_ID%TYPE;
ENAME EMPLOYEE.EMP_NAME%TYPE;
DTITLE DEPARTMENT.DEPT_TITLE%TYPE;
NCODE LOCATION.NATIONAL_CODE%TYPE;
TEAM VARCHAR2(10);
BEGIN
SELECT EMP_ID,EMP_NAME,DEPT_TITLE,NATIONAL_CODE
INTO EID,ENAME,DTITLE,NCODE
FROM EMPLOYEE
JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID)
JOIN LOCATION ON (LOCATION_ID = LOCAL_CODE)
WHERE EMP_ID = &사번;
IF NCODE = 'KO'
THEN TEAM := '국내팀';
ELSE
TEAM := '해외팀';
END IF;
DBMS_OUTPUT.PUT_LINE('사번: ' || EID);
DBMS_OUTPUT.PUT_LINE('이름: ' || ENAME);
DBMS_OUTPUT.PUT_LINE('부서: ' || DTITLE);
DBMS_OUTPUT.PUT_LINE('소속팀: ' || TEAM);
END;
/
3) 특정사원의 급여 조회해서 SAL변수에 대입, SAL에 담긴 값이
500만원 이상이면 '고급'
300만원 이상이면 '중급'
300만원 미만이면 '초급'
' 해당 사원의 급여 등급은 XX입니다 .' 형식으로 출력
DECLARE
SALARY EMPLOYEE.SALARY%TYPE;
GRADE VARCHAR2(10);
BEGIN
SELECT SALARY
INTO SALARY
FROM EMPLOYEE
WHERE EMP_ID = &사번;
IF SALARY >=5000000 THEN GRADE :='고급';
ELSIF SALARY >=3000000 THEN GRADE :='중급';
ELSE GRADE = '초급';
END IF;
DBMS_OUTPUT.PUT_LINE('해당사원의 급여 등급은 ' || GRADE || '입니다.');
END;
/
'ORACLE > ORACLE 실습문제' 카테고리의 다른 글
ORACLE 실습문제 _ 종합실습문제 _오답노트 (1) | 2022.11.29 |
---|---|
ORACLE 실습문제 SELECT_ JOIN _ 내부조인 (0) | 2022.11.17 |