by lgxj20 [PL/SQL] [2024.03.04 14:02:07]
DECLARE
CURSOR CUST IS
---조건.
SELECT cus_no_inner,hpno
FROM DUAL;
BEGIN
FOR CUR_CUST IN CUST LOOP
-- 쿠폰 번호 가지고 오기
SELECT CPON_NO
INTO v_cpon_no
FROM TABLE_A A
WHERE 1=1
AND 조건 = 조건
for update wait 3; <-- 이렇게하는 이유는 insert문 끝나기전에 시간을 두어서 처리하려고?
-- 쿠폰 지정
UPDATE TABLE_A
SET cus_no_inner = CUR_CUST.cus_no_inner
WHERE cpon_no = v_cpon_no;
V_ERR_POINT := 'CHECK_POINT_03';
--문자 문구 저장 [발송1]
select xxx
,yyy
,mmm
INTO v_xxx, v_yyy, v_seq, v_mmm, v_sms_title , v_sms_txt
from table_c
where 1 = 1
and 조건 = 조건
V_ERR_POINT := 'CHECK_POINT_04';
INSERT INTO table_dd
(
....
)
values
(
......
);
COMMIT;
END LOOP;
-- 여기서 문의 드릴 내용은 commit이 있는데 만약 위에 'table_c select 하는 곳에서 오류가 발생하게 되면 그전에 loop돈 데이타는 commit되서 insert 되어 야되는거 아닌가요?
-- 그리고 혹시 한번에 8만건 의 데이타를 처리할때 성능 향상을 할수 있는 방법이 있을까요?
-- 원하는건 오류가 발생해도 오류건은 insert 처리하고 문제되는건은 따로 테이블을 생성해서 error_table 같은걸 만들어서 처리를 하려고 합니다.
END;