The DBMS_RECTIFIER_DIFF package contains APIs used to detect and resolve data inconsistencies between two replicated sites.
This chapter contains this topic:
Note:
You can also determine differences between database objects and converge them using theDBMS_COMPARISON package.See Also:
Oracle Database PL/SQL Packages and Types Reference for information about the DBMS_COMPARISON package
Oracle Database 2 Day + Data Replication and Integration Guide and Oracle Streams Replication Administrator's Guide for information about using the DBMS_COMPARISON package
Table 16-1 DBMS_RECTIFIER_DIFF Package Subprograms
| Subprogram | Description | 
|---|---|
| Determines the differences between two tables. | |
| Resolves the differences between two tables. | 
This procedure determines the differences between two tables. It accepts the storage table of a nested table.
Note:
This procedure cannot be used on LOB columns, nor on columns based on user-defined types.DBMS_RECTIFIER_DIFF.DIFFERENCES ( sname1 IN VARCHAR2, oname1 IN VARCHAR2, reference_site IN VARCHAR2 := '', sname2 IN VARCHAR2, oname2 IN VARCHAR2, comparison_site IN VARCHAR2 := '', where_clause IN VARCHAR2 := '', { column_list IN VARCHAR2 := '', | array_columns IN DBMS_UTILITY.NAME_ARRAY, } missing_rows_sname IN VARCHAR2, missing_rows_oname1 IN VARCHAR2, missing_rows_oname2 IN VARCHAR2, missing_rows_site IN VARCHAR2 := '', max_missing IN INTEGER, commit_rows IN INTEGER := 500);
Note:
This procedure is overloaded. Thecolumn_list and array_columns parameters are mutually exclusive.Table 16-2 DIFFERENCES Procedure Parameters
| Parameter | Description | 
|---|---|
| sname1 | Name of the schema at  | 
| oname1 | Name of the table at  | 
| reference_site | Name of the reference database site. The default,  | 
| sname2 | Name of the schema at  | 
| oname2 | Name of the table at  | 
| comparison_site | Name of the comparison database site. The default,  | 
| where_clause | Only rows satisfying this clause are selected for comparison. The default,  | 
| column_list | A comma-delimited list of one or more column names being compared for the two tables. You must not have any spaces before or after a comma. The default,  | 
| array_columns | A PL/SQL associative array of column names being compared for the two tables. Indexing begins at 1, and the final element of the array must be  | 
| missing_rows_sname | Name of the schema containing the tables with the missing rows. | 
| missing_rows_oname1 | Name of an existing table at  | 
| missing_rows_oname2 | Name of an existing table at  | 
| missing_rows_site | Name of the site where the  | 
| max_missing | Integer that specifies the maximum number of rows that should be inserted into the  | 
| commit_rows | Maximum number of rows to insert to or delete from the reference or comparison table before a  | 
Table 16-3 DIFFERENCES Procedure Exceptions
| Exception | Description | 
|---|---|
| nosuchsite | Database site could not be found. | 
| badnumber | The  | 
| missingprimarykey | Column list must include primary key (or  | 
| badname | 
 | 
| cannotbenull | Parameter cannot be  | 
| notshapeequivalent | Tables being compared are not shape equivalent. Shape refers to the number of columns, their column names, and the column data types. | 
| unknowncolumn | Column does not exist. | 
| unsupportedtype | Type not supported. | 
| dbms_repcat.commfailure | Remote site is inaccessible. | 
| dbms_repcat.missingobject | Table does not exist. | 
This procedure resolves the differences between two tables. It accepts the storage table of a nested table.
Note:
This procedure cannot be used on LOB columns, nor on columns based on user-defined types.DBMS_RECTIFIER_DIFF.RECTIFY ( sname1 IN VARCHAR2, oname1 IN VARCHAR2, reference_site IN VARCHAR2 := '', sname2 IN VARCHAR2, oname2 IN VARCHAR2, comparison_site IN VARCHAR2 := '', { column_list IN VARCHAR2 := '', | array_columns IN dbms_utility.name_array, } missing_rows_sname IN VARCHAR2, missing_rows_oname1 IN VARCHAR2, missing_rows_oname2 IN VARCHAR2, missing_rows_site IN VARCHAR2 := '', commit_rows IN INTEGER := 500);
Note:
This procedure is overloaded. Thecolumn_list and array_columns parameters are mutually exclusive.Table 16-4 RECTIFY Procedure Parameters
| Parameter | Description | 
|---|---|
| sname1 | Name of the schema at  | 
| oname1 | Name of the table at  | 
| reference_site | Name of the reference database site. The default,  | 
| sname2 | Name of the schema at  | 
| oname2 | Name of the table at  | 
| comparison_site | Name of the comparison database site. The default,  | 
| column_list | A comma-delimited list of one or more column names being compared for the two tables. You must not have any spaces before or after a comma. The default,  | 
| array_columns | A PL/SQL associative array of column names being compared for the two tables. Indexing begins at 1, and the final element of the array must be  | 
| missing_rows_sname | Name of the schema containing the tables with the missing rows. | 
| missing_rows_oname1 | Name of the table at  | 
| missing_rows_oname2 | Name of the table at  | 
| missing_rows_site | Name of the site where the  | 
| commit_rows | Maximum number of rows to insert to or delete from the reference or comparison table before a  | 
Table 16-5 RECTIFY Procedure Exceptions
| Exception | Description | 
|---|---|
| nosuchsite | Database site could not be found. | 
| badnumber | The  | 
| badname | 
 | 
| dbms_repcat.commfailure | Remote site is inaccessible. | 
| dbms_repcat.missingobject | Table does not exist. |