Database

[오라클DB] 프로시저 복습문제 - 0329 1교시

웨일파도 2023. 3. 29. 11:18
반응형

 

--0329 DB7 1교시 : 프로시저 복습 2 문제

--1. 프로시저 이름 : UPDATE_TEST1
--2. 호출 방법 : EXECUTE UPDATE_TEST1(101, 5);
--3. 결과 : ENROL 테이블의 SUB_NO가 101인 학생들의 GRADE를 5증가

SELECT * FROM ENROL;

CREATE OR REPLACE PROCEDURE UPDATE_TEST1 (
    P_NO IN ENROL.SUB_NO%TYPE,
    P_GRADE IN ENROL.ENR_GRADE%TYPE)
IS
BEGIN
    UPDATE ENROL
    SET ENR_GRADE = ENR_GRADE + P_GRADE
    WHERE P_NO = SUB_NO;
    COMMIT;
END UPDATE_TEST1;
/

EXECUTE UPDATE_TEST1(101,5);

--------------------------------------------------------------------
--1. 프로시저 이름 : INSERT_TEST1
--2. 호출 방법 : EXECUTE INSERT_TEST1(20201234 , '홍길동', '기계', 1, C, M);
--3. 결과 : STUDENT 테이블에 STU_NO, STU_NAME, STU_DEPT, STU_GRADE, 
--		STU_CLASS, STU_GENDER 순으로 저장

CREATE OR REPLACE PROCEDURE INSERT_TEST1 (
    P_NO IN STUDENT.STU_NO%TYPE,
    P_NAME IN STUDENT.STU_NAME%TYPE,
    P_DEPT IN STUDENT.STU_DEPT%TYPE,
    P_GRADE IN STUDENT.STU_GRADE%TYPE,
    P_CLASS IN STUDENT.STU_CLASS%TYPE,
    P_GENDER IN STUDENT.STU_GENDER%TYPE
)
IS
BEGIN
    INSERT INTO STUDENT(STU_NO,STU_NAME,STU_DEPT,STU_GRADE,STU_CLASS,STU_GENDER)
        VALUES (P_NO,P_NAME,P_DEPT,P_GRADE,P_CLASS,P_GENDER);
    DBMS_OUTPUT.PUT_LINE('학번 : ' || P_NO);
    DBMS_OUTPUT.PUT_LINE('이름 : ' || P_NAME);
    DBMS_OUTPUT.PUT_LINE('학부 : ' || P_DEPT);
    DBMS_OUTPUT.PUT_LINE('데이터 입력 성공');
END INSERT_TEST1;
/

EXECUTE INSERT_TEST1(20201237 , '홍길동', '기계', 1, 'C', 'M');
SELECT * FROM STUDENT;

 

반응형

'Database' 카테고리의 다른 글

[MySQL] 테이블 분할 & 분석(PARTITION BY)  (0) 2023.11.25
[오라클DB] PL/SQL 프로시저 반복문 - 0329 2교시  (0) 2023.03.29
[DB] SQL 기본  (0) 2023.03.29
[오라클DB] PL/SQL 프로시저  (0) 2023.03.28
[오라클DB] 뷰 VIEW  (0) 2023.03.28