04_활용
SELECT * FROM emp;
SET SERVEROUTPUT ON;
--데이터 입력 프로시저
CREATE OR REPLACE PROCEDURE insert_data(
v_ename IN emp.ename%TYPE, v_job IN emp.job%TYPE, v_deptno IN emp.deptno%TYPE)
IS
BEGIN
INSERT INTO emp (ename, job, deptno) VALUES (v_ename, v_job, v_deptno);
DBMS_OUTPUT.put_line('데이터 입력 성공');
END;
/
EXEC insert_data('kim','staff',3);
설명 : insert_data라는 프로시저를 만들고 이 프로시저는 3개의 매개변수를 입력 받아서 Table에 데이터를 추가한다.
--입력받은 번호의 데이터 삭제
CREATE OR REPLACE PROCEDURE delete_data(
no IN employees.emp_no%TYPE)
IS
BEGIN
DELETE FROM employees WHERE emp_no = no;
END;
/
SELECT * FROM employees;
EXEC delete_data(117);
설명 : delete_data라는 프로시저를 만들고 이 프로시저는 1개의 매개변수를 입력받아 입력받은 매개변수의 번호와 같은 번호의 데이터를 삭제한다.
--특정 사원의 급여 N% 올리기
--급여가 인상된 직원의 데이터를 출력(사원번호, 이름, 급여)
CREATE OR REPLACE PROCEDURE update_data(
no IN employees.emp_no%TYPE, n NUMBER)
IS
v_no employees.emp_no%TYPE;
v_name employees.first_name%TYPE;
v_salary employees.salary%TYPE;
BEGIN
UPDATE employees SET salary = salary+(salary*n/100) WHERE emp_no = no;
SELECT emp_no, first_name, salary INTO v_no, v_name, v_salary FROM employees
WHERE emp_no = no;
DBMS_OUTPUT.put_line(v_no);
DBMS_OUTPUT.put_line(v_name);
DBMS_OUTPUT.put_line(v_salary);
END;
/
EXEC update_data(120,10);