INSERT 예
SET SERVEROUTPUT ON; -- 특정 사원 추가 SELECT * FROM emp; -- insert_date(ename, job, deptno) INSERT INTO emp(ename, job, deptno) VALUES('kim', 'staff', 3); CREATE OR REPLACE PROCEDURE insert_date(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); COMMIT; DBMS_OUTPUT.PUT_LINE(v_ename||'/'||v_job||'/'||v_deptno); DBMS_OUTPUT.PUT_LINE('데이터 입력 성공'); END; / EXEC insert_date('kim', 'staff', 3);
UPDATE 예
-- 특정 사원의 급여 올리기 -- 급여가 인상된 직원의 데이터 출력(사원번호, 이름, 급여) -- 테이블 : employees SELECT * FROM employees; CREATE OR REPLACE PROCEDURE update_date(v_no IN NUMBER, v_rate IN NUMBER) IS v_emp employees%ROWTYPE; BEGIN UPDATE employees SET salary = salary + (salary * (v_rate / 100))WHERE emp_no = v_no; COMMIT; SELECT emp_no, family_name, first_name, salary INTO v_emp.emp_no, v_emp.family_name, v_emp.first_name, v_emp.salary FROM employees WHERE emp_no = v_no; DBMS_OUTPUT.PUT_LINE('사원번호 : '||v_emp.emp_no); DBMS_OUTPUT.PUT_LINE('이름 : '||v_emp.family_name||''||v_emp.first_name); DBMS_OUTPUT.PUT_LINE('봉급 : '||v_emp.salary); END; / EXEC update_date(117, 10);
DELETE 예
-- 특정 사원 번호의 데이터 삭제 프로시저 제작 -- 대상 테이블 : employees SELECT * FROM employees; CREATE OR REPLACE PROCEDURE delete_date(v_deptno IN employees.emp_no%TYPE) IS BEGIN DELETE FROM emp WHERE emp_no = v_deptno; COMMIT; END; / EXEC delete_date(127);
'Oracle DB 11g > 03.PL SQL' 카테고리의 다른 글
[DB]03-07.Oracle DB PLSQL LOOP, WHILE, FORLOOP 반복문 (0) | 2018.10.11 |
---|---|
[DB]03-06.Oracle DB PLSQL IF문, 만들어 둔 프로시저 소스 확인 (0) | 2018.10.10 |
[DB]03-04.Oracle DB PLSQL Function (0) | 2018.10.10 |
[DB]03-03.Oracle DB PLSQL %ROWTYPE (0) | 2018.10.10 |
[DB]03-02.Oracle DB PLSQL 스칼라 데이터 타입, Scalar (0) | 2018.10.10 |