본문 바로가기

Oracle Database /SQL-문제풀이

SQL PROCEDURE(프로시져) 문제

--이름, 급여, 부서번호 입력란  EMPLOYEES 테이블에서 자료를 등록하는 SCRIPT를 작성하여라.

--부서번호가 10 일때 급여를 20% 올려서 주고

--시퀀스가 9000~ 9999 로 1씩 증하게 만들기


CREATE SEQUENCE TEST_SEQ --시퀀스 생성

INCREMENT BY 1 -- (++,1씩 증가)

START WITH 9000 -- ~ 부터 시작

MAXVALUE 9900;  -- ~ 끝


SET SERVEROUTPUT ON;

SET VERIFY OFF;


ACCEPT p_name PROMPT ' 이름 : ';  --AWT 비슷 ?

ACCEPT p_sal PROMPT ' 급여 : ';      --AWT 비슷 ?

ACCEPT p_deptno PROMPT ' 부서번호를 입력 : ';  --AWT 비슷 ?


DECLARE 

    V_name employees.LAST_NAME%TYPE := '&p_name';

    V_sal NUMBER(6,0):= &p_sal;   

    V_deptno NUMBER(6,0):= &p_deptno; 

BEGIN

    IF V_deptno = 10 THEN     -- 부서번호

        V_sal := V_sal * 1.2;       -- 퍼센트

    END IF;

     

    INSERT INTO EMPLOYEES(EMPLOYEE_ID, LAST_NAME, SALARY, HIRE_DATE, DEPARTMENT_ID, JOB_ID, EMAIL)

    VALUES(TEST_SEQ.NEXTVAL, V_name, V_sal, SYSDATE, V_deptno, 'IT_PROG', V_name||'@naver.com');

     

     END;

     /


SET VERIFY ON;    

SET SERVEROUTPUT OFF;