Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
Purpose
This package was undocumented in 11gR1 but now is included in the online documentation. The package is an API to dbms_metadata_int which compares the difference between two objects via their SXML formatted metadata.
This function compares the metadata for two objects and returns a set of ALTER statements for making object 1 like object2
dbms_metadata_diff.compare_alter(
object_type IN VARCHAR2,
name1 IN VARCHAR2,
name2 IN VARCHAR2,
schema1 IN VARCHAR2 DEFAULT NULL,
schema2 IN VARCHAR2 DEFAULT NULL,
network_link1 IN VARCHAR2 DEFAULT NULL,
network_link2 IN VARCHAR2 DEFAULT NULL)
RETURN CLOB;
conn uwclass/uwclass@pdbdev
desc servers
desc serv_inst
set serveroutput on
DECLARE
c CLOB;
BEGIN
SELECT dbms_metadata_diff.compare_alter('TABLE', 'SERVERS', 'SERV_INST', USER, USER)
INTO c;
Compares the metadata for two objects and returns an ALTER_XML document
dbms_metadata_diff.compare_alter_xml(
OBJECT_TYPE IN VARCHAR2,
NAME1 IN VARCHAR2,
NAME2 IN VARCHAR2,
SCHEMA1 IN VARCHAR2,
SCHEMA2 IN VARCHAR2,
NETWORK_LINK1 IN VARCHAR2,
NETWORK_LINK2 IN VARCHAR2)
RETURN CLOB;
conn sys@pdbdev as sysdba
set serveroutput on
DECLARE
c CLOB;
BEGIN
SELECT dbms_metadata_diff.compare_alter_xml('TABLE', 'EMP', 'EMPLOYEES', 'SCOTT', 'HR')
INTO c;
The functions compares the metadata for two objects and returns an sxml difference document
dbms_metadata_diff.compare_sxml(
object_type IN VARCHAR2,
name1 IN VARCHAR2,
name2 IN VARCHAR2,
schema1 IN VARCHAR2 DEFAULT NULL,
schema2 IN VARCHAR2 DEFAULT NULL,
network_link1 IN VARCHAR2 DEFAULT NULL,
network_link2 IN VARCHAR2 DEFAULT NULL)
RETURN CLOB;
conn sys@pdbdev as sysdba
set serveroutput on
DECLARE
c CLOB;
BEGIN
SELECT dbms_metadata_diff.compare_sxml('TABLE', 'EMP', 'EMPLOYEES', 'SCOTT', 'HR')
INTO c;