-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
I try passing array to oracle procedure in node.js.
below is my code. but failure. help me..
var BIGINBLOCK ="declare "
+"p_seatcodes dbms_sql.varchar2a; "
+"begin "
+"p_seatcodes := :1; "
+"RESERVEPROC(:p_email,:p_class,:p_bookingcode,:p_timecode,:p_screencode,:p_moviecode,:p_totalprice,:p_seatcount,p_seatcodes); "
+"end;"
and my procedure is
CREATE OR REPLACE PROCEDURE RESERVEPROC
( p_email in varchar2,
p_class in varchar2,
p_bookingcode in varchar2,
p_timecode in varchar2,
p_screencode in varchar2,
p_moviecode in varchar2,
p_totalprice in integer,
p_seatcount in integer,
p_seatcodes in dbms_sql.varchar2a
)
IS
I INTEGER;
BEGIN
--멤버 마일리지 업데이트
UPDATE MEMBER
SET MILEAGE = CASE
WHEN class = 'D' THEN MILEAGE+p_totalprice*0.02
WHEN class = 'C' THEN MILEAGE+p_totalprice*0.04
WHEN class = 'B' THEN MILEAGE+p_totalprice*0.06
WHEN class = 'A' THEN MILEAGE+p_totalprice*0.08
WHEN class = 'S' THEN MILEAGE+p_totalprice*0.1
END
WHERE EMAIL = p_email;
--BOOKING테이블 예약레코드 삽입
INSERT
INTO BOOKING
VALUES (p_bookingcode,p_email,p_timecode,p_screencode,p_moviecode,p_totalprice,p_seatcount);
--seatcodearr을 루프 돌면서 BOOKED_SEATS에 삽입하고 PERFORMANCE_SEAT의 사용여부 업데이트.
FOR I IN 1 .. p_seatcodes.COUNT
LOOP
--BOOKED_SEATS에 INSERT
INSERT
INTO BOOKED_SEATS
VALUES(p_bookingcode,p_seatcodes(I));
--PERFORMANCE_SEAT UPDATE
UPDATE
PERFORMANCE_SEAT
SET SEATSTATUS=1
WHERE SEATCODE= p_seatcodes(I)
and TIMECODE= p_timecode;
END LOOP;
--커밋.
commit;
END;