Oracle 12.2 mit flexibleren Datenstrukturen
Letzte Runde
Oracle 12.2 reagiert mit Neuerungen bei REST-Schnittstellen, JSON-Objekten und Sharding auf aktuelle Entwicklungen in Unternehmen – und stellt auf einen neuen Veröffentlichungsrhythmus um.
In vielen Bereichen ergänzt und vervollständigt Release 2 der Oracle-Datenbank die Funktionen, die bereits mit dem Vorgänger 12.1 eingeführt wurden. Beispiele sind die Erweiterungen von Oracle Multitenant oder die JSON-Unterstützung in der Datenbank. R2 enthält aber auch einige neue Funktionen, etwa ein neues Sharding. Der Artikel gibt einen Überblick über die wichtigsten Neuerungen; allein aus Platzgründen können nicht alle aufgeführt werden. Wer an einer vollständigen Übersicht interessiert ist, dem sei ein Blick in den „New Features Guide“ in der Dokumentation empfohlen. Ob die Datenbank aus der Cloud gemietet oder „on Premises“ selbst betrieben wird, macht für die neuen Funktionen keinen Unterschied.
Oracle 12.2 ist die letzte Release im bekannten Versionierungsschema; künftig führt der Hersteller ein neues ein. Wurde bislang etwa alle 18 bis 24 Monate eine Major Release herausgebracht, auf die zwei Minor Releases folgten, sind nun jährliche Major Releases geplant. Die Versionsnummer soll sich am Erscheinungsjahr orientieren. Das bedeutet, die Anfang 2018 erscheinende Version wird nicht 13c, sondern 18c heißen. Im Drei-Monats-Abstand soll es Release Updates (RU) geben, die ausgewählte Bugfixes enthalten und am ehesten den bisherigen Bundle Patches entsprechen. Möchte man seine Datenbank möglichst lange auf Basis eines bestimmten RU betreiben, wird darüber hinaus die Möglichkeit bestehen, eine Release Update Revision (RUR) einzuspielen, die lediglich Fehler in den Bugfixes eines spezifischen RU behebt.
SQL für alle Daten
Jede Version der Oracle-Datenbank führt neue Funktionen im Kernbereich von SQL und PL/SQL (der hauseigenen Programmiersprache) ein – so auch 12.2. An einigen Beispielen ist erkennbar, dass Oracle seine SQL-Funktionen für den Umgang mit flexiblen Datenstrukturen rüstet und mit größerer Fehlertoleranz versieht. Dies war schon in der Vorversion 12.1 bei den JSON-Funktionen so und setzt sich mit der aktuellen Release fort.
Soll ein String (VARCHAR2) in einen numerischen, einen Datumswert oder einen Zeitstempel umgewandelt werden, gibt es hierfür die Funktionen TO_NUMBER, TO_DATE und TO_TIMESTAMP. Im Fehlerfall (der String lässt sich nicht konvertieren) löst Oracle bisher stets einen „harten“ Fehler aus. Entwickler haben sich daher oft eigene Konvertierungsfunktionen in PL/SQL geschrieben, die in solchen Fällen NULL oder einen Default-Wert zurückgeben. Das alles ist mit 12.2 nicht mehr nötig, wie die Listings 1, 2 und 3 zeigen.
Besonders nützlich ist die Neuerung im Zusammenhang mit externen Tabellen, wenn Dateien im Dateisystem des Datenbankservers als Tabelle aufgefasst werden. Hier kommt es oft vor, dass einzelne Zeilen ungültige Daten enthalten – die neuen SQL-Funktionen vereinfachen die Arbeit mit solchen Daten. Passend dazu stellt die neue Funktion VALIDATE_CONVERSION fest, ob eine Konvertierung möglich ist (Listing 3).