Mam wrażenie, że istnieją dwie różnice między dwoma dużymi skomplikowanymi schematami Wyroczni, które powinny być identyczne, więc postanowiłem je zrzucić i zróżnicować w celu zbadania. Znalazłem artykuł ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ), który podaje następujące polecenia do zrzucenia definicji tabeli i indeksu.
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
Jednak gdy zrzuciłem i zdywersyfikowałem szpulę danych wyjściowych schematów, w każdej linii występowały trywialne różnice, co czyni tę różnicę bezwartościową. Na przykład nazwa schematu jest zawarta w każdej definicji tabeli.
Czy jest lepszy sposób, aby to zrobić, który da najważniejsze dane schematu w formacie, który można łatwo porównać za pomocą narzędzia do porównywania. Interesują mnie tabele, indeksy i wyzwalacze.
Korzystam z Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
nie potrzebujesz żadnej z tych rzeczy.
otn.oracle.com
Oracle ma bezpłatne narzędzie o nazwie SQL Developer. ma różnicę schematu.
źródło
Możesz użyć TOAD to świetne ogólne narzędzie do programowania Oracle. Istnieje wersja testowa do testowania. Z listy funkcji:
Kolejnym produktem, który możesz przetestować, jest OraPowerTools :
Jako bezpłatną alternatywę możesz sprawdzić ten artykuł CodeProject: Schema Compare Tool for Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
źródło
Używamy DKGAS „DBDiff for Oracle” , który może porównywać cały schemat lub jego część (tabele, sekwencje, indeksy, ograniczenia, uprawnienia, pakiety, obiekty i dane), jako raport porównawczy lub jako skrypt aktualizacji.
Używamy tego ostatniego jako podstawy skryptów aktualizacji bazy danych.
źródło
Jeśli jesteś w stanie uruchomić Perla, możesz spojrzeć na SQLFairy , które powinno być w stanie wygenerować zrzut twojego schematu jako SQL. Możesz wtedy użyć standardowych narzędzi do różnicowania tekstu. Istnieje również narzędzie, które pobierze dwa schematy i utworzy polecenia ALTER, aby były identyczne.
źródło
Jeśli masz trochę pieniędzy do wydania, rozważ użycie PowerDIFF dla Oracle: http://www.orbit-db.com . To narzędzie doskonale porównuje tabele, indeksy i wyzwalacze i jest wyposażone w wiele opcji porównawczych umożliwiających dostosowanie operacji „różnicowania”. Skrypt różnicy całkowitej (polecenia DDL i DML) jest generowany opcjonalnie. Aby połączyć się z bazą danych, potrzebujesz sterownika ODBC.
źródło