Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak porównać dwa obiekty bazy danych w Oracle?

W tym samouczku podam przykład porównania dwóch obiektów tabeli bazy danych o różnych schematach przy użyciu pakietu narzędziowego DBMS_COMPARISON w Oracle.

Kroki porównania dwóch obiektów tabeli w Oracle przy użyciu DBMS_COMPARISON

Krok 1 Utwórz porównanie za pomocą DBMS_COMPARISON. W poniższym przykładzie porówna jedną tabelę ze schematu SCOTT i jedną tabelę ze schematu HR w tej samej bazie danych i utworzy porównanie o nazwie emp_compare .

BEGINDBMS_COMPARISON.create_comparison (comparison_name => 'emp_compare ',schema_name => 'scott',object_name => 'emp',dblink_name => NULL,remote_schema_name => 'hr',remote_object_name => 'emp2');END;/

Wyjście:

Procedura PL/SQL zakończona pomyślnie.

Krok 2 Po wykonaniu powyższego bloku PL/SQL zostanie utworzone porównanie. Następnym krokiem jest przeprowadzenie tego porównania, jak pokazano poniżej.

SET SERVEROUTPUT ONDECLAREt_scan_info DBMS_COMPARISON.comparison_type;l_diff BOOLEAN;BEGINl_diff :=DBMS_COMPARISON.compare (comparison_name => 'emp_compare ',scan_info => t_scan_info,perform_row_dif => TRUE);JEŚLI NIE l_diff THENDBMS_OUTPUT.put_line('Znalezione różnice i scan_id to ' || t_scan_info.scan_id);ELSEDBMS_OUTPUT.put_line('Nie znaleziono różnic;.END');;/

Wyjście:

Znalezione różnice i scan_id to procedura 7PL/SQL zakończona pomyślnie.

Krok 3 Jeśli zostaną znalezione różnice, możesz je sprawdzić za pomocą następującego zapytania:

SELECT nazwa_porównania,lokalny_rowid,zdalny_rowid,statusFROM user_comparison_row_difWHERE nazwa_porównania ='EMP_COMPARE ';

Wyjście:

COMPARISON_NAME    LOCAL_ROWID              ZDALNE_ROWID         STATUS EMP_compare 

Otrzymasz dane wyjściowe, jak pokazano powyżej. W którym pokaże nazwę porównania, identyfikator lokalnego wiersza (identyfikator wiersza tabeli scott.emp), identyfikator wiersza zdalnego (identyfikator wiersza tabeli hr.emp2) i status.

Teraz możesz zapytać obie tabele o te identyfikatory ROWID, aby sprawdzić różnice.

Możesz także porównać dane z dwóch tabel z różnych schematów za pomocą zapytania SQL, jak pokazano w poniższym przykładzie.

WYBIERZ EMPNO, IMIĘ, ZADANIE, MGR, WYNAJĘCIE, SAL, COMM, DEPTNOFROM scott.empMINUS WYBIERZ EMPNO, IMIĘ, ZADANIE, MGR, WYNAJĘCIE, SAL, KOMUNIKACJA, DZIAŁ Z hr.emp2;

Zobacz też:

  • Podziel ciąg w przykładzie PL/SQL
  • Wyodrębnij instrukcje DDL z Oracle DUMP (plik dmp)
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data Oracle na konwersję ciągu

  2. OracleParameter i klauzula IN

  3. UPPER() Funkcja w Oracle

  4. TO_CHAR typu Oracle PL/SQL TABLE

  5. Pojedynczy kursor spłukiwania