Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

wir haben ein altes Dictionary Programm, mit dem man Tabellen anlegen, ändern, löschen kann und wenn man das Programm laufen läst, dann prüft das in der Oracle Datenbank ob Tabellen fehlen und legt diese dann wieder an, wenn man die mal gelöscht haben sollte.

Leider ist das Programm nicht mit Oracle 9 kompatibel. Die Firma von der das Programm ist, gibt es schon lange nicht mehr.

Kennt jemand ein ähnliches Programm für Oracle 9?

Frank

Ein solches Tool was überwacht ob alle angelegten Tabellen noch existieren kenne ich nicht, aber du kannst sowas doch selber machen. Du lässt einfach in regelmäßigen Abständen ein Script laufen was alle Tabellen anlegt. Existiert eine Tabelle schon gibts ne Fehlermeldung und alle die nicht existieren werden neu angelegt. Das ganze kannst du auch mit Export/Import machen. Du exportierst die Datenbank (oder alle relevanten Tabellen) und Importierst die dann in regelmäßigen Abständen. Wenn du nur die Strucktur beim Import haben willst und nicht auch die Inhalte gibts du beim Export das Attribut "rows=no" an.

Nachteil ist, das du bei jeder Struckturveränderung einen neuen Export-Dump bzw. ein neues Tabellenerstellungsscript erstellen musst....

Aber wieso kommt es überhaupt dazu das bei euch jemand Tabellen löscht? Nimm doch allen das Recht "drop Table" weg.....

Ok, dafür ist der andere Vorschlag unpraktisch.....

Ich kann dir höchstens noch vorschlagen die Verschiedenen DBs zu vergleichen mit einem sql-Script und dann die fehlenden von hand anlegen...

Handelt es sich tatsächlich um 7 Datenbanken (instanzen) oder lediglich um Schemata??

Wenn du Schemata vergleichen willst ist das ja ziemlich einfach mit z.B. folgendem Select:

select max(owner) object_name, object_type from dba_objects where owner in('SchemaA','SchemaB') group by object_name, object_type having count(object_name) < 2;

Du must nur noch für SchemaA und SchemaB die namen einzutragen und bekommst die Tabellen, Indizes,.... angezeigt die in dem jeweils anderem Schema nicht da sind.

Das gleiche kannst du mit den sonstigen Attributen (Colums,...) in der Datenbanken machen.

Wenn du allerdings mehrere Instanzen hast, müsstest du die Abfrage über mehrer Datenbanken machen vielleicht mit einem union select über die beiden dba_objects der Datenbanken (Wofür die Datenbanken optimalerweise verlinkt sind).

Ansonsten hast du natürlich noch die Möglichkeit einen einfachen Datenmodelldesigner zu nehmen. Z.B. Sybase Powerdesigner. Du kannst mit reverse engeneering das Datenmodell aus einer DB (Schema) holen und dieses dann zum abgleich gegen eine anderes Schema laufen lassen und als ergebnis bekommst du dann die sql-Scripte um das fehlende hinzuzufügen. Aber diese Programme sind meiner meinung nach nicht die besten, da die physical options bei Oracle DB in diesen Tools fast immer probleme machen.....

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.