반응형
--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 |