Materialized view not purging (over dblink via view)
Try basing your MV directly on the source table and not on an intermediate view. Include your &quot;isgis=1&quot; condition in the MV query.
create materialized view primary_system.workorder_mv
build immediate 
refresh force 
on demand 
start with sysdate next sysdate + (30/(60*60*24))
as
select
    cast(workorderid as number(38,0)) as objectid,
    wonum,
    status,
    --other fields
    longitudex,
    latitudey
from
    external_system.workorder@gistomax
    where isgis=1