soa.delete_instances_in_parallel работает не для всех разделов

#oracle #oracle11g #soa #purge #oracle-soa

#Oracle #oracle11g #soa #очистка #oracle-soa

Вопрос:

В нашей организации есть 4 разных раздела. Мы хотели бы настроить таргетинг на один раздел за раз с различным периодом хранения. Следующий блок pl / sql работает для одного раздела, но не для других разделов. Пожалуйста, сообщите.

Блок PL / SQL:

 DECLARE
max_creation_date timestamp;
min_creation_date timestamp;
batch_size integer;
max_runtime integer;

DOP integer;
max_count integer;
purge_partitioned_component boolean;
SOA_PARTITION_NAME  VARCHAR2(200);

BEGIN
min_creation_date := to_timestamp('2015-01-01','YYYY-MM-DD');
max_creation_date := sysdate - 0;
max_runtime := 60;
batch_size := 10000;
DOP := 3;
max_count := 1000000;
SOA_PARTITION_NAME := 'default'; --define multiple partitions
DEV_SOAINFRA.soa.delete_instances_in_parallel (
min_creation_date => min_creation_date,
max_creation_date => max_creation_date,
batch_size => batch_size,
max_runtime => max_runtime,
DOP => DOP,
max_count => max_count,
SOA_PARTITION_NAME => SOA_PARTITION_NAME
);
END;
  

Спасибо.

Ответ №1:

Как вы можете видеть из самого блока, у него есть опция «раздел». «SOA_PARTITION_NAME := ‘default’; «

используйте приведенный ниже скрипт и при вызове, пожалуйста, укажите SOA_PARTITION_NAME

 DECLARE
max_creation_date timestamp;
min_creation_date timestamp;
batch_size integer;
max_runtime integer;

DOP integer;
max_count integer;
purge_partitioned_component boolean;
SOA_PARTITION_NAME  VARCHAR2(200);

BEGIN
min_creation_date := to_timestamp('2015-01-01','YYYY-MM-DD');
max_creation_date := sysdate - 0;
max_runtime := 60;
batch_size := 10000;
DOP := 3;
max_count := 1000000;
SOA_PARTITION_NAME := SOA_PARTITION_NAME; --define multiple partitions
DEV_SOAINFRA.soa.delete_instances_in_parallel (
min_creation_date => min_creation_date,
max_creation_date => max_creation_date,
batch_size => batch_size,
max_runtime => max_runtime,
DOP => DOP,
max_count => max_count,
SOA_PARTITION_NAME => SOA_PARTITION_NAME
);
END;
  

Вы можете сделать это переменной и вызвать этот пакет напрямую или из OSB или SOA по расписанию.

Надеюсь, это помогло.