1
그래서 C#에서 저장 프로 시저 (Oracle)를 호출하려고하지만 정확한 구문을 알지 못하고 매개 변수가 필요한지 여부를 알지 못하기 때문에 이 절차는 매개 변수를 가져 와서 자동으로 할당하므로 어떤 매개 변수를 전달해야합니까? C#에서 저장된 Oracle 프로 시저 호출하기
다음은 저장 프로 시저를 사전에create or replace procedure p_delete_tt_duration_10min is
new_status varchar2(50);
status varchar2(20);
p_tkt varchar2(50);
cursor prt_cursor is
SELECT a.id,
a.ticketno,
to_number(a.outagedurationmin),
a.fault_occur_time,
a.auto_clear_time
FROM pmp_bpm_troubleticket a
WHERE a.fault_id IS NOT NULL
AND a.fault_occur_time IS NOT NULL
--and a.generatedby = 'Automatic'
AND ((a.tt_type IN ('Cell/Sector Down',
'3G Cell Down Alarm',
'4G Cell Down Alarm') AND
to_number(a.outagedurationmin) < 18) OR
(a.tt_type IN ('Site Down',
'NodeB Down Alarm',
'ENodeB Down Alarm',
'TRX/Equipment Faulty',
'Processing Problem',
'GPRS Down',
'Media disconnect',
'Hardware Fault',
'Link Down') and
to_number(a.outagedurationmin) < 10))
AND a.fault_occur_time >= '2017-04-01 00:00:00' order by to_number(a.outagedurationmin) desc;
begin
for prt_temp in prt_cursor loop
p_tkt := prt_temp.id;
delete from wf_assignment t
where t.assignment_id in
(select id from wf_dai_ban_task a where a.primary_key = p_tkt);
commit;
delete from wf_dai_ban_task a where a.primary_key = p_tkt;
commit;
delete from wf_yi_ban_task a where a.primary_key = p_tkt;
commit;
delete from pmp_bpm_task_expand_info a where a.primary_key = p_tkt;
commit;
delete from PMP_BPM_CC_LIST a where a.primarykey = p_tkt;
commit;
delete FROM PMP_BPM_TROUBLETICKET_PROCESS D
WHERE D.ACTIVITYID IN (SELECT W.ID
FROM PMP_BPM_TROUBLETICKET_ACTIVITY W
WHERE W.PRIMARYKEY = p_tkt);
commit;
delete from PMP_BPM_TROUBLETICKET_ACTIVITY a
where a.primarykey = p_tkt;
commit;
delete from PMP_BPM_TROUBLETICKET a where a.id = p_tkt;
commit;
end loop;
end;
감사합니다.
을 쓸 수 있습니까? 대부분의 삭제 명령은 외래 키 제약 조건을 통해 더 잘 수행되어야합니다. 그리고 실제로 루프는 필요하지 않습니다. –
절차에 매개 변수가 필요하지 않습니다! –
@WernfriedDomscheit 내 프로 시저가 아니므로 C# – Bilal