1 package ad_parallel_updates_pkg as
2 -- $Header: adprupds.pls 120.2 2006/07/20 23:23:32 vlim ship $
3
4 --
5 -- update types
6 --
7 -- ROWID_RANGE : use range of rowids when updating
8 -- ID_RANGE_BY_ROWID : use range of IDs and selectively update by rowids
9 -- ID_RANGE : use range of IDs when updating
10
11 ROWID_RANGE CONSTANT INTEGER := 1;
12 ID_RANGE_BY_ROWID CONSTANT INTEGER := 2;
13 ID_RANGE CONSTANT INTEGER := 3;
14 ID_RANGE_SUB_RANGE CONSTANT INTEGER := 4;
15 ID_RANGE_SUB_RANGE_SQL CONSTANT INTEGER := 5;
16 ID_RANGE_SCAN_EQUI_ROWSETS CONSTANT INTEGER := 6;
17
18 --
19 -- mode for processed rows
20 -- PRESERVE_PROCESSED_UNITS : do not delete processed rows, just mark them
21 -- as processed
22 -- DELETE_PROCESSED_UNITS : delete units that are processed
23 -- (applicable for ROWID_RANGE only)
24 --
25 PRESERVE_PROCESSED_UNITS CONSTANT INTEGER := 1;
26 DELETE_PROCESSED_UNITS CONSTANT INTEGER := 2;
27
28 procedure initialize_rowid_range
29 (X_update_type in number,
30 X_owner in varchar2,
31 X_table in varchar2,
32 X_script in varchar2,
33 X_worker_id in number,
34 X_num_workers in number,
35 X_batch_size in number,
36 X_debug_level in number,
37 X_processed_mode in number);
38
39 procedure initialize_rowid_range
40 (X_update_type in number,
41 X_owner in varchar2,
42 X_table in varchar2,
43 X_script in varchar2,
44 X_worker_id in number,
45 X_num_workers in number,
46 X_batch_size in number,
47 X_debug_level in number);
48
49 procedure initialize_id_range
50 (X_update_type in number,
51 X_owner in varchar2,
52 X_table in varchar2,
53 X_script in varchar2,
54 X_ID_column in varchar2,
55 X_worker_id in number,
56 X_num_workers in number,
57 X_batch_size in number,
58 X_debug_level in number,
59 X_SQL_Stmt in varchar2 default NULL,
60 X_Begin_ID in number default NULL,
61 X_End_ID in number default NULL);
62
63 procedure processed_rowid_range
64 (X_rows_processed in number,
65 X_last_rowid in rowid);
66
67 procedure processed_id_range
68 (X_rows_processed in number,
69 X_last_id in number);
70
71 procedure get_rowid_range_wrapper
72 (X_start_rowid out nocopy rowid,
73 X_end_rowid out nocopy rowid,
74 X_any_rows out nocopy integer,
75 X_num_rows in number default NULL,
76 X_restart in integer default 0);
77
78 procedure get_rowid_range
79 (X_start_rowid out nocopy rowid,
80 X_end_rowid out nocopy rowid,
81 X_any_rows out nocopy boolean,
82 X_num_rows in number default NULL,
83 X_restart in boolean default FALSE);
84
85 procedure get_id_range
86 (X_start_id out nocopy number,
87 X_end_id out nocopy number,
88 X_any_rows out nocopy boolean,
89 X_num_rows in number default NULL,
90 X_restart in boolean default FALSE);
91
92 procedure purge_processed_units
93 (X_owner in varchar2 default NULL,
94 X_table in varchar2 default NULL,
95 X_script in varchar2 default NULL);
96
97 --
98 -- Procedure Delete_Update_Information
99 --
100 -- Deletes rows associated with an update from AD tables so that the update
101 -- is eligible for reprocessing
102 --
103 -- This procedure does an implicit commit of the transaction.
104 --
105 -- THIS API IS INTENDED TO BE USED ONLY IN CERTAIN SITUATIONS. DO NOT
106 -- ARBITRARILY CALL THIS API.
107 --
108
109 procedure delete_update_information(
110 X_update_type in number,
111 X_owner in varchar2,
112 X_table in varchar2,
113 X_script in varchar2);
114
115 --
116 -- ReInitialize_After_Table_Reorg
117 --
118 -- This procedure is only applicable for ROWID_RANGE processing.
119 --
120 -- It marks the update for reprocessing if it partially done and data in the
121 -- driving table has been reorganized
122 --
123 procedure ReInitialize_After_Table_Reorg(
124 X_owner in varchar2 default NULL,
125 X_table in varchar2 default NULL,
126 X_script in varchar2 default NULL);
127
128 end;