Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vergleichen von Oracle Instanzen - packages (https://www.delphipraxis.net/130613-vergleichen-von-oracle-instanzen-packages.html)

barnti 11. Mär 2009 09:39

Datenbank: Oracle • Version: 10g • Zugriff über: Spring, JDBC

Vergleichen von Oracle Instanzen - packages
 
Hallo,

ich habe folgendes Problem: Bei der Entwicklung greife ich auf eine Test-DB zu. Kommen neue Packages hinzu, so möchte ich spätestens vor dem Deployment (z.B. Build) in der Produktion einen Vergleich der Packages in beiden Umgebungen machen. Wie könnte man dies bewerkstelligen?

Ich hatte an einen JUnitTest gedacht, der irgendwie beide Umgebungen vergleicht. Welche Möglichkeiten gibt es Metadaten beider Umgebungen miiteinander zu vergleichen?

dfried 11. Mär 2009 09:47

Re: Vergleichen von Oracle Instanzen - packages
 
Zitat:

Zitat von barnti
Hallo,
Welche Möglichkeiten gibt es Metadaten beider Umgebungen miiteinander zu vergleichen?

in Systemview "USER_OBJECTS" stehen alle Objekte drin, hier könntest du schpn mal vergleichen ob was fehlt/neu ist und im Systemview "USER_SOURCE" steht dann der passende "Quelltext" zum Package (sofern er nicht gewrappt ist :-) ) den du dann Zeilenweise vergleichen könntest.

nahpets 11. Mär 2009 10:05

Re: Vergleichen von Oracle Instanzen - packages
 
Hallo,

mal so ins Unreine und ungetestet:

SQL-Code:
select distinct NAME from (
  select count(*) As Anzahl, NAME, TEXT from (
    select NAME, TEXT from Test-db.USER_SOURCE
    union all
    select NAME, TEXT from Produktions-db.USER_SOURCE
  ) group by NAME, TEXT
) where Anzahl <> 2
Was passoert hier:
  • Zuerst werden alle Usersourcen der beiden Datenbanken per Union zusammengefügt.
  • Dann werden die Zeilen, gruppiert nach Name und Inhalt gezählt.
  • Nun wird alles rausgefiltert, was nich zweimal vorkommt
  • und das wird per Distinct ausgegeben.
Damit müsstest Du eine Liste der geänderten oder neuen Sourcen erhalten.

Ggfls. könntest Du noch auf NAME und/oder TYPE der Views USER_SOURCE einen Filter legen.

Test-db und/oder Produktions-db musst die ggfls. über einen Datenbanklink realisieren, um aus einer Datenbank auch auf eine andere Datenbank auf ggfls. einem anderen Server zuzugreifen.

Ob das jetzt genau so funktioniert, weiß ich nicht, aber eventuell hilft Dir die Idee ja weiter.

barnti 11. Mär 2009 10:09

Re: Vergleichen von Oracle Instanzen - packages
 
Hallo ihr zwei,

vielen Dank für eure Antworten. Ich werde mir das mal in Ruhe zu Gemüte führen und probieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz