Вы можете попробовать преобразовать его в запрос NOT EXISTS
.Если вам не нужен created >= SYSDATE - 80
, вы можете запросить меньшую таблицу dba_tables
вместо dba_objects, что означает, что ваш запрос может быть записан как
SELECT table_owner || '.' || table_name AS table_name
FROM all_tab_modifications m
WHERE timestamp >= SYSDATE - 80 AND table_owner IN (
'AXIOM_DATA',
'AXIOM_DATA2',
'AXIOM_META',
'AXIOM_META2'
) AND table_name LIKE 'RPTD_%' AND NOT EXISTS (
SELECT 1
FROM dba_tables t
WHERE t.owner = m.table_owner AND t.table_name = m.table_name
);
Однако, если вы все еще хотите это сравнение,условия должны быть использованы соответствующим образом в NOT EXISTS
с dba_objects
SELECT table_owner || '.' || table_name AS table_name
FROM all_tab_modifications m
WHERE timestamp >= SYSDATE - 80 AND table_owner IN (
'AXIOM_DATA',
'AXIOM_DATA2',
'AXIOM_META',
'AXIOM_META2'
) AND table_name LIKE 'RPTD_%' AND NOT EXISTS (
SELECT 1
FROM dba_objects t
WHERE t.owner = m.table_owner AND t.object_name = m.table_name
AND t.object_type ='TABLE'
AND t.created >= SYSDATE - 80
);