Kategorie: Datenbanken

One Filter to Rule them All: Dynamische Regeln für das Business

Rules Manager und Expression Filter sind zwei sehr mächtige aber weitgehend unbekannte Bestandteile der Datenbank, die mit Oracle 10g eingeführt wurden. Metadatengesteuert – und damit ohne Programmierung – lassen sich komplexe Regelwerke und Prüfungen erstellen. Rulesmanager setzt auf Expression Filter auf. Durch den Einsatz dessen eigener Indextypen und SQL-Operatoren lassen sich auch sehr große Datenbestände performant bearbeiten.

Weiterlesen »

Flexibles Laden von Flatfiles und dynamische Ermittlung des Dateinamens zur Laufzeit des ETL-Prozesses

Wer unter anderem Datenbewirtschaftung (ETL) mit Informatica PowerCenter betreibt, hat bestimmt schon mindestens einmal vor dem Problem gestanden, dass auch im Zuge (täglicher) Routineverarbeitungen Flatfiles mit nicht gleichbleibendem Namen eingelesen und verarbeitet werden mussten. Verschärft wurde das Problem vielleicht noch dadurch, dass die Anzahl der zu verarbeitenden Files nicht zwangsweise vorher bekannt war und der jeweilige Dateiname außerdem auch noch im Target (File oder Datenbanktabelle) protokolliert werden musste, ein Problem, das typischerweise beim Datawarehousing auftritt.

Weiterlesen »

Tabellengröße abfragen

Wie findet man die Größe mehrerer Tabellen heraus, die in mehreren Schemata liegen? Die Anforderung lautete: „Ermitteln Sie doch bitte mal den Festplattenplatz den wir einsparen können, wenn wir die Tabelle „XY“ in Schema „AB“ und die Tabellen, die ich hier in dem Excelsheet notiert habe, löschen werden. Und schon hat man 68 Tabellennamen und 6 Schemata im Excelformat.

Weiterlesen »

Virtuelle Spalten

Auch Oracle kann sich dem Trend zur Virtualisierung nicht entziehen und bietet neben einer eigenen VM auch virtuelle Spalten an. Bzgl. des Sinns dieser Möglichkeit hatte ich bereits etliche Diskussionen ohne wirkliches Ergebnis – beschränken wir uns also auf die Fakten.
Die Idee zur Nutzung virtueller Spalten kam in einem Projekt, in welchem es u.a. um Lageinformationen von Objekten geht. Hierbei handelt es sich um Kilometrierungs-Informationen, für die es 3 verschiedene Schreibweisen gibt:

Weiterlesen »

Excel-Berichte mit PL/SQL erstellen

Letzte Woche war ich auf der DOAG Konferenz in Nürnberg und habe einen gut besuchten Vortrag über das Erzeugen von Excel-Dateien mit PL/SQL gehalten.
Jetzt will ich mein Versprechen einlösen und den zugehörigen Quelltext veröffentlichen.

Weiterlesen »

Oracle Routing Engine einsetzen für LKW-Routen

Seit Oracle 10g verfügt Oracle Spatial über die Routing Engine. Diese ermöglicht es, direkt in der Datenbank Routen zu berechnen und in verschiedenen Formen (Geometrien, Wegbeschreibungen) auszugeben.
In Oracle 11gR2 wurde die Routing Engine erweitert. Sie basiert jetzt auf dem Network Data Model (NDM). Dies ermöglicht es, das Routing-Netzwerk um zusätzliche Informationen und Parameter zu erweitern. Ein Anwendungsfall für diese Erweiterung ist Truck Routing.

Weiterlesen »

Oracle 11g – Never change a running system, oder doch?

Never change a running system – eine mit einiger Berechtigung immer wieder gern bemühte Argumentation, um mit dem Upgrade auf ein neues Softwarerelease noch abzuwarten, bis tatsächliche oder vermutete Kinderkrankheiten ausgemerzt sind.
Offensichtlich verhalten sich viele Anwender genau so abwartend bezüglich eines Upgrades auf die bereits seit einiger Zeit verfügbare Version 11g der Oracle Datenbank – im Feld begegnen uns überwiegend 9i- und 10g-Versionen, das aktuelle Release ist bisher noch spärlich vertreten. Unter den vielen Neuerungen, Optionen und Features gibt es dabei einige, die es durchaus wert sind, einen baldigen Umstieg in Betracht zu ziehen. Eines der Top Features ist dabei sicherlich „Database Replay“, Bestandteil der „Real Application Testing“ Option. Wenn man bisher eine geänderte Anwendung einem realistischen Lasttest unterziehen wollte, war man auf die bekannten Werkzeuge von Drittherstellern angewiesen. Dies bedeutete eine Analyse von Anwenderverhalten, Erstellung von Benutzerprofilen, Analyse von bisherigen Belastungen über die Zeit und letztendlich die Zusammenstellung einer Simulation. Trotz des nicht unerheblichen Aufwands stand am Ende immer noch eine Simulation, als solche weiterhin mit dem Risiko behaftet, die Realität dann doch nicht ganz zu treffen. Und – Hand auf´s Herz – in wie vielen Fällen wurde auf den Lasttest ganz verzichtet, wenn Aufwand und Kosten für eine einigermaßen realistische Simulation erst einmal bekannt waren? Mit „Database Replay“ gibt es nunmehr die Möglichkeit, alle Datenbankaktivitäten auf dem bisherigen System zu loggen, diese Logdateien auf das neue System zu transferieren und dort gegen die Datenbank „abzuspielen“.

Weiterlesen »
Adobe Stock By vectorfusionart

Partitionen einer Tabelle in Oracle auslesen

Für meinen ersten Block hier wollte ich erstmal ein einfaches Thema ansprechen: Das Auslesen von vorhanden Partitionen einer Tabelle.
Mir passierte es, dass ich bei einem Kunden saß und mir mit Toad die Partitionen einer Tabelle anschauen wollte. Also erstmal über die GUI die Tabelle im entsprechenden Schema suchen und sich dann die Description anzeigen lassen. Anschließend ganz einfach auf den Tab „Partitions“ wechseln. Eigentlich ganz einfach. Wenn nun aber die GUI Probleme hat wieder ins Leben zurückzukehren und aufzutauen, weil bereits so viele Partitionen existieren, hört die Einfachheit auf.

Weiterlesen »

LISTAGG

In Oracle 11gRel2 gibt es eine neue Gruppierungsfunktion das LISTAGG. Mit dieser Funktion ist man in der Lage, Spaltenwerte einer Wiederholungsgruppe in einer Zeile zusammenzufassen getrennt durch ein definiertes Trennzeichen.
Beispiel:
Inhalt der Tabelle Team:

Weiterlesen »

Oracle 11g Kennwörter

Vor kurzem habe ich über meine Probleme mit den neuen Einstellungen für das Default-Profil berichtet.
Der dort gezeigte Trick – das Profil anpassen – funktioniert leider nur für Konten, deren Kennwörter noch nicht abgelaufen (expired) sind.
Der einzige mir bekannte Weg, Konten mit abgelaufenem Kennwort wieder zu aktivieren, ist das Kennwort tatsächlich zu ändern.

Weiterlesen »