forked from CITKParus/P8-ExchangeService
При удалении сервиса и функции у них могут быть записи журнала (не связанные с очередью обмена), при удалении со связями - удаляем и их
This commit is contained in:
parent
3f337c5fde
commit
d6ec6b19b7
34
db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc
Normal file
34
db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
create or replace procedure P_EXSSERVICEFN_BASE_DELETE_LNK
|
||||||
|
(
|
||||||
|
NRN in number, -- Ðåãèñòðàöèîííûé íîìåð
|
||||||
|
NDLT_LINK_SIGN in number -- Óäàëèòü ñâÿçàííûå çàïèñè æóðíàëà ðàáîòû ñåðâèñà èíòåãðàöèè è î÷åðåäè îáìåíà
|
||||||
|
)
|
||||||
|
as
|
||||||
|
begin
|
||||||
|
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé î÷åðåäè îáìåíà */
|
||||||
|
for REC in (select T.RN
|
||||||
|
from EXSQUEUE T
|
||||||
|
where T.EXSSERVICEFN = NRN
|
||||||
|
and NDLT_LINK_SIGN = 1)
|
||||||
|
loop
|
||||||
|
/* Ïðîâåðêà íà ñóùåñòâîâàíèå çàïèñè */
|
||||||
|
for REC_CHECK in (select 1 from EXSQUEUE T1 where T1.RN = REC.RN)
|
||||||
|
loop
|
||||||
|
/* Áàçîâîå óäàëåíèå ñ çàâèñèìîñòÿìè */
|
||||||
|
P_EXSQUEUE_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||||
|
end loop;
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé æóðíàëà ðàáîòû */
|
||||||
|
for REC in (select T.RN
|
||||||
|
from EXSLOG T
|
||||||
|
where T.EXSSERVICEFN = NRN
|
||||||
|
and NDLT_LINK_SIGN = 1)
|
||||||
|
loop
|
||||||
|
P_EXSLOG_BASE_DELETE(NRN => REC.RN);
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
/* Áàçîâîå óäàëåíèå */
|
||||||
|
P_EXSSERVICEFN_BASE_DELETE(NRN => NRN);
|
||||||
|
end;
|
||||||
|
/
|
40
db/P_EXSSERVICE_BASE_DELETE_LNK.prc
Normal file
40
db/P_EXSSERVICE_BASE_DELETE_LNK.prc
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
create or replace procedure P_EXSSERVICE_BASE_DELETE_LNK
|
||||||
|
(
|
||||||
|
NRN in number, -- Ðåãèñòðàöèîííûé íîìåð
|
||||||
|
NDLT_LINK_SIGN in number -- Óäàëèòü ñâÿçàííûå çàïèñè æóðíàëà ðàáîòû ñåðâèñà èíòåãðàöèè è î÷åðåäè îáìåíà
|
||||||
|
)
|
||||||
|
as
|
||||||
|
begin
|
||||||
|
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé î÷åðåäè îáìåíà */
|
||||||
|
for REC in (select T.RN
|
||||||
|
from EXSQUEUE T
|
||||||
|
where T.EXSSERVICEFN in (select T1.RN from EXSSERVICEFN T1 where T1.PRN = NRN)
|
||||||
|
and NDLT_LINK_SIGN = 1)
|
||||||
|
loop
|
||||||
|
/* Ïðîâåðêà íà ñóùåñòâîâàíèå çàïèñè */
|
||||||
|
for REC_CHECK in (select 1 from EXSQUEUE T1 where T1.RN = REC.RN)
|
||||||
|
loop
|
||||||
|
/* Áàçîâîå óäàëåíèå ñ çàâèñèìîñòÿìè */
|
||||||
|
P_EXSQUEUE_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||||
|
end loop;
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé æóðíàëà ðàáîòû */
|
||||||
|
for REC in (select T.RN
|
||||||
|
from EXSLOG T
|
||||||
|
where T.EXSSERVICE = NRN
|
||||||
|
and NDLT_LINK_SIGN = 1)
|
||||||
|
loop
|
||||||
|
P_EXSLOG_BASE_DELETE(NRN => REC.RN);
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
/* Óäàëåíèå ôóíêöèé ñ çàâèñèìîñòÿìè */
|
||||||
|
for REC in (select T.RN from EXSSERVICEFN T where T.PRN = NRN)
|
||||||
|
loop
|
||||||
|
P_EXSSERVICEFN_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
/* Áàçîâîå óäàëåíèå */
|
||||||
|
P_EXSSERVICE_BASE_DELETE(NRN => NRN);
|
||||||
|
end;
|
||||||
|
/
|
Loading…
x
Reference in New Issue
Block a user