DBA Data[Home] [Help]

PACKAGE: SYS.DBMS_CDC_UTILITY

Source


1 PACKAGE dbms_cdc_utility
2   IS
3      PROCEDURE qccgetee
4        (
5        edition_o OUT binary_integer
6        );
7 
8       PROCEDURE qccgscn
9        (
10        scnbase_o OUT binary_integer,
11        scnwrap_o OUT binary_integer
12        );
13 
14      FUNCTION  get_current_scn
15        RETURN NUMBER;
16 
17      PROCEDURE lock_change_set
18        (
19        change_set_name IN VARCHAR2
20        );
21 
22      --
23      -- perform extra steps to CREATE a sync. change table
24      --
25      PROCEDURE setup_sync_table
26        (
27        owner IN VARCHAR2,
28        table_name IN VARCHAR2
29        );
30 
31      --
32      -- perform extra steps to ALTER a sync. change table
33      --
34      PROCEDURE fixup_sync_table
35        (
36        owner IN VARCHAR2,
37        table_name IN VARCHAR2
38        );
39 
40      --
41      -- perform extra steps to DROP a sync. change table
42      --
43      PROCEDURE cleanup_sync_table
44        (
45        owner IN VARCHAR2,
46        table_name IN VARCHAR2
47        );
48 
49      --
50      -- implementation of EXTEND_WINDOW_LIST()
51      --
52      PROCEDURE extend_window_list
53        (
54        subscription_list     IN VARCHAR2,
55        source_schema_list    IN VARCHAR2,
56        source_table_list     IN VARCHAR2,
57        rollback_segment_list IN VARCHAR2,
58        check_source          IN BOOLEAN,
59        read_consistency      IN BOOLEAN,
60        timestamp_scn_list    OUT VARCHAR2,
61        tablemod_scn_list     OUT VARCHAR2,
62        read_consistent_scn   OUT NUMBER
63        );
64 
65      --
66      -- Determine if a column name is a CDC control column,
67      --
68      FUNCTION  is_control_column
69        ( column_name  IN VARCHAR2 )
70        RETURN NUMBER;
71 
72      --
73      -- Determine if a column name is a CDC control column for MVs,
74      --
75      FUNCTION  is_control_columnmv
76        ( column_name  IN VARCHAR2 )
77        RETURN NUMBER;
78 
79 
80      -- Next 2 are for dynamic ChangeTable echo/debug
81      PROCEDURE qccgelvl
82        (
83        event IN  binary_integer,
84        level OUT  binary_integer
85        );
86 
87      FUNCTION  get_event_level
88        (
89        event IN NUMBER
90        )
91        RETURN NUMBER;
92 
93 
94      --
95      --  Returns 1 if this is Oracle Enterprise Edition, else return 0
96      --
97      FUNCTION get_oracle_edition
98         RETURN NUMBER;
99 
100      --
101      -- Set subscription window starting SCN (EARLIEST)
102      --
103      PROCEDURE set_window_start
104        ( subscription_handle IN NUMBER );
105 
106 
107      --
108      -- Convert an Oracle number to a hex string
109      --
110      FUNCTION  numtohex
111        ( num IN NUMBER)
112        RETURN VARCHAR2;
113 
114      --
115      -- Verify user has access to a specified change table
116      --
117      PROCEDURE chk_security (owner       IN VARCHAR2,
118                              ownerl      IN binary_integer,
119                              table_name  IN VARCHAR2,
120                              table_namel IN binary_integer,
121                              mvlog       IN binary_integer,
122                              success     OUT binary_integer);
123 
124      --
125      -- allocate a unique lock for CDC use
126      --
127      PROCEDURE cdc_allocate_lock (lockname  IN VARCHAR2,
128                                   lockhandle OUT VARCHAR2,
129                                   expiration_secs IN integer default 864000);
130      --
131      -- do a logical purge of data from all change tables that are MV logs
132      -- related to a subscription.
133      --
134      --                          PARAMETERS
135      --
136      --  subscription_handle: A unique identifier for a subscription
137      --
138      --  purge_this_subscription: a flag indicating whether or not the
139      --                           subscription is going away.  'Y' means
140      --                           ignore this subscription when computing
141      --                           the purge point.
142      -- returns 0 if nothing to do else > 0
143      --
144      PROCEDURE purgeMVLogLogical ( subscription_handle     IN  NUMBER,
145                                    purge_this_subscription IN  CHAR,
146                                    updated_something       OUT NUMBER );
147 
148      --
149      -- do a physical purge of a change table that is an MV log
150      --
151      PROCEDURE purgeMVLogPhysical ( schema_name IN  VARCHAR2,
152                                     table_name  IN  VARCHAR2,
153                                     rows_purged OUT NUMBER );
154 
155 
156      --
157      -- produce an IMPORT_CHANGE_TABLE call during export
158      --
159      FUNCTION export_change_table
160        (
161        schema_comma_table IN VARCHAR2
162        )
163        RETURN VARCHAR2;
164 
165      --
166      -- Produce metadata for a Change Table during IMPORT
167      --
168      PROCEDURE import_change_table
169         (
170 	change_table_type    IN VARCHAR2,
171         major_version        IN VARCHAR2,
172         minor_version        IN VARCHAR2,
173         database_name        IN VARCHAR2,
174         owner                IN VARCHAR2,
175         change_table_name    IN VARCHAR2,
176         change_set_name      IN VARCHAR2,
177         source_schema        IN VARCHAR2,
178         source_table         IN VARCHAR2,
179         created_scn          IN VARCHAR2,
180         lowest_scn           IN VARCHAR2,
181         highest_scn          IN VARCHAR2,
182         column_type_list     IN VARCHAR2,
183         col_created          IN VARCHAR2,
184         capture_values       IN VARCHAR2,
185         rs_id                IN CHAR,
186         row_id               IN CHAR,
187         user_id              IN CHAR,
188         timestamp            IN CHAR,
189         object_id            IN CHAR,
190         source_colmap        IN CHAR,
191         target_colmap        IN CHAR,
192         ddl_markers          IN CHAR,
193         opt_created          IN VARCHAR2
194         );
195 
196 
197      --
198      -- check for purge job in job queue. if none, then submit one.
199      -- If submits one returns TRUE otherwise FALSE.
200      --
201      FUNCTION check_purge RETURN BOOLEAN;
202 
203      --
204      -- (next 2 are for getting next "batch" SCN for SYNC)
205      -- get the next "batch" SCN for a SYNC change table.
206      --
207      PROCEDURE qccsgnbs
208         (
209         highest_scn  IN  NUMBER,
210         highest_len  IN  binary_integer,
211         next_scn     OUT NUMBER
212         );
213 
214      FUNCTION getSyncSCN
215         (
216         highest_scn  IN  NUMBER,
217         highest_len  IN  NUMBER
218         )
219         RETURN NUMBER;
220 
221 
222      --
223      -- Drop Change Tables in schema when doing DROP USER CASCADE
224      --
225      PROCEDURE drop_user
226         (
227         user_name        IN VARCHAR2
228         );
229 
230      -- set the purge boundary using SPLIT PARTITION
231      PROCEDURE set_purgeBoundary
232         (
233           subscription_handle IN binary_integer
234         );
235 
236      --
237      -- To get database name, major version, and minor version
238      --
239      PROCEDURE get_instance
240         (
241          major_version OUT NUMBER,
242          minor_version OUT NUMBER,
243          db_name       OUT VARCHAR2
244         );
245 
246      --
247      -- To get table object number
248      --
249      PROCEDURE get_table_objn(owner   IN VARCHAR2,
250                               tabnam  IN VARCHAR2,
251                               tabobjn OUT BINARY_INTEGER);
252 
253      --
254      -- To count the number of purge job
255      --
256      PROCEDURE count_purge_job(purge_job IN  VARCHAR2,
257                                job_cnt   OUT BINARY_INTEGER);
258 
259      --
260      -- To count the number of subscribers on a change table
261      --
262      PROCEDURE count_subscribers(change_table_objn  IN  BINARY_INTEGER,
263                                  num_of_subscribers OUT BINARY_INTEGER);
264 
265      --
266      -- To count the number of object columns
267      --
268      PROCEDURE count_object_col(owner  IN  VARCHAR2,
269                                 tabnam IN  VARCHAR2,
270                                 colcount  OUT BINARY_INTEGER);
271 
272      --
273      -- To count if a column exists in a table
274      --
275      PROCEDURE count_existing_col(tabobjn IN BINARY_INTEGER,
276                                   colnam  IN VARCHAR2,
277                                   colcount   OUT BINARY_INTEGER);
278 
279      --
280      -- To delete the export action associated with the change table
281      --
282      PROCEDURE delete_export_action(change_table_owner IN VARCHAR2,
283                                     change_table_name  IN VARCHAR2);
284 
285      -- paramter max string length
286      CDC_DB_NAME_MAX CONSTANT INTEGER := 128;
287      CDC_ID_NAME_MAX CONSTANT INTEGER := 30;
288      CDC_DESC_MAX    CONSTANT INTEGER := 255;
289      CDC_VARCHAR_MAX  CONSTANT INTEGER := 32767;
290      CDC_SINGLE_CHAR  CONSTANT INTEGER := 1;
291      CDC_JOB_NAME_MAX CONSTANT INTEGER := 4000;
292      CDC_DML_TYPE_MAX CONSTANT INTEGER := 6;
293      CDC_ROOT_DIR_MAX CONSTANT INTEGER := 2000;
294      --
295      -- Verify the varchar/char parameter does not exceed the limit
296      --
297      PROCEDURE verify_varchar_param(param_name   IN VARCHAR2,
298                                     param_value  IN VARCHAR2,
299                                     param_max    IN BINARY_INTEGER);
300 
301      -- VERIFY_CDC_NAME
302      -- Verify the param_value parameter does not exceed the limit
303      -- and it conforms to the naming rules for CDC identifiers.
304      -- All Change Data Capture (CDC) identifiers must have at most 30
305      -- characters, and must start with a letter that is followed
306      -- by any combination of letters, numerals, and the signs
307      -- '$', '_', and '#'. Other characters cannot be used in identifiers.
308      -- The rules for CDC identifiers are the same as for PL/SQL identifiers.
309      --
310     PROCEDURE verify_cdc_name(param_name   IN VARCHAR2,
311                               param_value  IN VARCHAR2,
312                               param_max    IN BINARY_INTEGER);
313   END dbms_cdc_utility;