====== pears.DBCleanupOrphanOLEDocument ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."DBCleanupOrphanOLEDocument" IS
{create function DBCleanupOrphanOLEDocument
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in countordo char(1))
returns integer
begin
declare @RC integer;
set @RC = 0;
if countordo = 'C' then
select count(*) into @RC from OLEDocument where
(
((ownertype = 'P') and not exists(select * from person where personid = OLEDocument.ownerid)) or
((ownertype = 'C') and not exists(select * from company where companyid = OLEDocument.ownerid)) or
((ownertype = 'V') and not exists(select * from vacancy where vacancyid = OLEDocument.ownerid)) or
((ownertype = 'R') and not exists(select * from progress where progressid = OLEDocument.ownerid)) or
((ownertype = 'L') and not exists(select * from placement where placementid = OLEDocument.ownerid))
);
return @RC
end if;
delete from OLEDocument where(ownertype = 'P') and
not exists(select * from person where personid = OLEDocument.ownerid);
set @RC = @RC + (select @@rowcount);
delete from OLEDocument where(ownertype = 'C') and
not exists(select * from company where companyid = OLEDocument.ownerid);
set @RC = @RC + (select @@rowcount);
delete from OLEDocument where(ownertype = 'V') and
not exists(select * from vacancy where vacancyid = OLEDocument.ownerid);
set @RC = @RC + (select @@rowcount);
delete from OLEDocument where(ownertype = 'R') and
not exists(select * from progress where progressid = OLEDocument.ownerid);
set @RC = @RC + (select @@rowcount);
delete from OLEDocument where(ownertype = 'L') and
not exists(select * from placement where placementid = OLEDocument.ownerid);
set @RC = @RC + (select @@rowcount);
call AuditLog('CLEANUP',null,string(@RC,' Unattached OLEDocument Records deleted '),null,null);
return @RC;
end
}