아래 내용을 작성하였습니다.
for c1으로 조회 해서 c1에 값을 담궈 놓은 후 c1.fg_use = '0' 0 값이면 이 값을 INSERT INTO T_TMM_161에 insert 하려고 합니다.
근데 for loop를 돌렸음에도 불구하고 1건씩만 들어가네요
로그를 찍어봐도 루프는 잘 돌아서 찍히는데 실제 테이블에는 인서트가 되어 있지가 않네요
간단하고 생각하고 토요일부터 처리를 해보려고 노력했으나 원인를 모르겠어서 질문 드립니다!
CREATE OR REPLACE PROCEDURE dddd.SP_TMM_162
as
user_exp exception;
user_skp exception;
v_vc_emsg T_SYS_900.vc_emsg%type;
v_nm_pgm varchar2(100) := '111';
v_id_job T_SYS_900.id_job%type := 'SP_TMM_162';
begin
-- 작업이력 START
sp_sys_900 (sysdate, v_id_job, '00', 'S', 0, 'I', null);
begin
--휴일주차매장 조회
for c1 in ( select dy_sale,
cd_venr,
no_user,
dc_key_cd,
(select nvl(c.nm_body,'') from t_com_011 c where c.cd_head = 'PKT120' and c.cd_body = dc_key_cd ) as nm_dc_key,
fg_use
from t_tmm_162
where dy_sale =to_char(sysdate,'yyyymmdd')
) LOOP
if c1.fg_use = '0' THEN
DELETE FROM T_TMM_161
WHERE CD_VENR = c1.cd_venr ;
dbms_output.put_line(' 결과 c1dc_key_cd >>>['|| c1.dc_key_cd ||']');
dbms_output.put_line(' 결과 nm_dc_key >>>['|| c1.nm_dc_key ||']');
dbms_output.put_line(' 결과 no_user >>>['|| c1.no_user ||']');
dbms_output.put_line(' 결과 cd_venr >>>['|| c1.cd_venr ||']');
INSERT INTO T_TMM_161
VALUES
(c1.cd_venr, c1.no_user, c1.dc_key_cd, c1.nm_dc_key, '0000000102', SYSDATE, '0000000102', SYSDATE);
end if;
end loop;
END;
COMMIT;