공부를 하다가 예매 시스템을 작성해 보고 있습니다.
PL/SQL 을 통해서 예매 데이터를 입력받고, 해당 되는 좌석의 테이블 컬럼의 데이터에
좌석예매수를 증가시키는 방식의 프로시져를 짤려고 하는데요...
대략의 구조가...
예매 -> N좌석선택, 매수선택 -> 좌석예매수 테이블중 "N" 컬럼의 레코드를 매수만큼 증가.
이러한 구조입니다.
CREATE OR REPLACE PROCEDURE reservationData_insert
(
i_reservationNo IN reservationData.reservationNo%TYPE,
i_seat IN reservationData.seat%TYPE,
i_sheet IN reservationData.sheet%TYPE,
i_memberid IN reservationData.memberid%TYPE,
i_sportscode IN reservationData.sportscode%TYPE,
i_discountCode IN reservationData.discountCode%TYPE
)
IS
DECLARE
v_seat CHAR(1) := i_seat;
v_type CHAR(3) := 'F';
v_sheet NUMBER(1) := i_sheet;
BEGIN
INSERT INTO reservationData ( reservationNo, seat, sheet, memberid, sportscode, discountCode )
VALUES ( i_reservationNo, i_seat, i_sheet, i_memberid, i_sportscode, i_discountCode );
IF v_type = 'F' THEN
UPDATE seatResDataF
SET v_seat = v_seat + v_sheet;
END IF;
COMMIT;
END reservationData_insert;
대략 이런방식의 구조인데요... 여기서 UPDATE 부분에서 좌석의 종류가 S,N,R 이런식으로 존재하는데요..
N좌석이 선택되어 넘어오면 N 컬럼의 레코드를 증가시키고 이런방식이 되야합니다.
변수명으로 칼럼명을 지정할수가 없네요.... (제가 PL/SQL을 시작한지 얼마안되서 ㅠ )
이걸 처리할 방법이 없을까요? v_seat가 N 이라는 레코드를 담고 있으면, seatResDataF 테이블에서 N 컬럼의
값을 증가 시킬수 있는방법이요... 도움좀 부탁드립니다. :)