2016-09-30 33 views
0

我们在组织中有4个不同的分区。我们希望以不同的保留期限同时针对一个分区。以下pl/sql块适用于一个分区,但不适用于其他分区。请指教。soa.delete_instances_in_parallel不适用于所有分区

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; 

感谢。

回答

0

正如你可以从块本身看到的那样,它有一个“分区”选项。 “SOA_PARTITION_NAME:=‘默认’;”

使用下面的脚本,并在调用请注明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在日程表中调用这个包。

希望它有帮助。