ROWTYPE 레코드 변수에 저장된 레코드들을 개별적으로 제어가능한지 궁금합니다.
(레코드 변수에 저장된 마지막 레코드를 테이블에 INSERT할때 어떤 조건을 주고 싶은데 그게 가능한지 궁금합니다.)
참고로 제가 작성한 프로시저 소스는 아래와 같으며
코드로 작성해야 하는 부분은 빨간색으로 표시하였습니다
도움좀 부탁드립니다 ^^
CREATE OR REPLACE PROCEDURE SP_SELECT
as
C_NAME CHAR := NULL;
C_ID TINYINT := 0;
C_TOTAL INT := 0;
C_TEMP T1%rowtype;
CURSOR C1 IS
SELECT NAME, ID, YYDDMM, ORD, ETC1, ETC2, ETC3, ETC4 FROM T1;
BEGIN
FOR C_TEMP IN C1 LOOP
CASE
WHEN C_TEMP.NAME = 'A' THEN
INSERT INTO TA VALUES (:C_TEMP.NAME, :C_TEMP.ID, :C_TEMP.YYDDMM, :C_TEMP.ORD, :C_TEMP.ETC1, :C_TEMP.ETC2, :C_TEMP.ETC3, :C_TEMP.ETC4);
C_TOTAL := C_TOTAL + C_TEMP.ID;
// 만약 A가 마지막 레코드일 경우(더이상 읽어올 레코드가 없음) 지금까지 합산된 값을 TC테이블에 입력한다.
WHEN C_TEMP.NAME = 'B' THEN
INSERT INTO TB VALUES (:C_TEMP.NAME, :C_TEMP.ID, :C_TEMP.YYDDMM, :C_TEMP.ORD, :C_TEMP.ETC1, :C_TEMP.ETC2, :C_TEMP.ETC3, :C_TEMP.ETC4);
C_TOTAL := C_TOTAL + C_TEMP.ID;
// 만약 B가 마지막 레코드일 경우(더이상 읽어올 레코드가 없음) 지금까지 합산된 값을 TC테이블에 입력한다.
WHEN C_TEMP.NAME = 'C' THEN
INSERT INTO TC VALUES ('SUM', :C_TOTAL, :C_TEMP.YYDDMM, :C_TEMP.ORD, :C_TEMP.ETC1, :C_TEMP.ETC2, :C_TEMP.ETC3, :C_TEMP.ETC4);
C_TOTAL := 0;
ELSE
INSERT INTO ETC VALUES ('0',0);
END CASE;
END LOOP;
END;